Существуют ли какие-либо проекты с открытым исходным кодом, использующие DDD (Domain Driven Design)?[закрыто]
-
02-07-2019 - |
Вопрос
Я пытаюсь понять концепции, лежащие в основе DDD, но мне трудно понять их, просто читая книги, поскольку они склонны обсуждать эту тему довольно абстрактно.Мне бы хотелось увидеть хорошие реализации DDD в коде, желательно на C#.
Есть ли хорошие примеры проектов, использующих DDD в мире открытого исходного кода?
Решение
Эрик Эванс и шведская консалтинговая компания выпустили образец приложения, основанный на примере доставки, который Эрик использует на протяжении всей книги.Он написан на Java, но концепции хорошо документированы на странице проекта.
http://dddsample.sourceforge.net/
Однако имейте в виду, что DDD — это больше о путешествии, чем о пункте назначения.Поймите, что пример кода, который вы просматриваете, принимал множество форм, прежде чем стал тем, что вы видите сейчас.Вы не увидели неудобных моделей, которые использовались изначально, и упустили шаги, предпринятые для рефакторинга модели на основе знаний, полученных в процессе.Хотя строительные блоки важны в DDD, Эрик считает, что им придается слишком большое значение, поэтому относитесь ко всем образцам с долей скептицизма.
Другие советы
Я не уверен, насколько он полон, но я нашел Образец НДДД в Google Code.
Я удивлен, что никто не упомянул Макто, Образец DDD Айенде.Самое важное в Macto — это то, что процесс мышления перед фактическим кодированием представлен в виде серия постов.DDD – это не реализация модели, а моделирование бизнес-домена.Решения типа «некоторая концепция является совокупным корневым объектом/сущностью/значением» гораздо важнее, чем то, как будет сохраняться AR.
Также я бы порекомендовал видеоролики Уди Дахана о SOA и CQRS, которые могут обеспечить лучший контекст для применения DDD.
Это не проект с открытым исходным кодом, но все же это пример кода: http://www.codeplex.com/dddpds
Пример использован в книге Доменно-ориентированное проектирование .NET с использованием C#:Проблема-Дизайн-Решение
Выдуманный пример, который кажется многообещающим, но мог бы умереть:http://www.codeplex.com/domaindrivendesign
Боюсь, что http://www.codeplex.com/domaindrivendesign действительно умер, но если кто-то заинтересован в том, чтобы внести свой вклад, не стесняйтесь обращаться ко мне.
В целом я бы рекомендовал не слишком полагаться на примеры DDD. В лучшем случае примеры могут показать результаты моделирования предметной области и/или один подход к реализации шаблонов.Поэтому я бы рекомендовал прочитать книгу, а затем задавать вопросы в Форум.
http://kigg.codeplex.com/ для меня хороший пример.
Я знаю, что это не C#, но это мета-фреймворк Java, который следует подходу, управляемому доменом:Я мало что знаю об этом, но я готов изучить это в ближайшем будущем: Рома Рамочная программа
http://sellandbuy.codeplex.com/
еще один проект ДДД
Хорошее чтение — книга Джимми Нильссона (и блог, если уж на то пошло).Применение доменно-ориентированного дизайна
Это смесь книг Эванса и Фаулера (Доменно-ориентированный дизайн - Эванс), и (Шаблоны архитектуры корпоративных приложений - Фаулер)
Я сам ими не пользовался, но некоторые инструменты упомянуты на странице DDD в Википедии.Однако большинство из них, похоже, реализовано на Java.
http://en.wikipedia.org/wiki/Domain-driven_design#Software_tools_to_support_domain-driven_design
Хорошо, я нашел это, но это Java, а не C#:
http://timeandmoney.domainlanguage.com/
Сервер Code Camp, Джеффри Палермо пример кода для книги ASP.NET MVC в действии имеет открытый исходный код и использует DDD.
(То же, что и мой ответ в Хорошие примеры предметно-ориентированного дизайна)