Где я могу найти несколько хороших примеров для DDD? [закрыто]

390

Я узнаю о доменно-управляемом дизайне, однако есть некоторые практические проблемы, которые меня смущают, и я думаю, что некоторые хорошие примеры могут проясниться.

Кто-нибудь знает какие-нибудь хорошие рабочие примеры кода, которые хорошо справляются с моделированием базовых концепций DDD?

Особенно интересует

  • Иллюстративная модель предметной области
  • Хранилища
  • Использование Домена / Сервисов Приложений
  • Объекты значения
  • Совокупные корни
jlembke
источник
42
IHMO такие дебаты очень помогут. Иногда больше, чем простой вопрос. Например, мы могли бы изменить это в вопросе: «Где я могу найти несколько хороших примеров для DDD?» и это работает с форматом вопросов и ответов.
Gizzmo
1
Мне показался очень поучительным пример «проекта гибкого управления» из книги Вона Вернона. он иллюстрирует практическую реализацию перечисленных вами строительных блоков, а также работу с различными ограниченными контекстами, код которых вы можете найти здесь: github.com/VaughnVernon/IDDD_Samples
Mehdi.
1
Я бы порекомендовал этот пример: github.com/vkhorikov/DddInAction
Владимир
1
Вы можете посмотреть здесь: dzone.com/storage/assets/…
Chaklader Asfak Arefe
Получил один здесь: github.com/appie2go/steal-this-code
Кларк Кент

Ответы:

199

Сложность с образцами DDD заключается в том, что они часто очень специфичны для предметной области, а техническая реализация получившейся системы не всегда показывает конструктивные решения и переходы, которые были сделаны при моделировании предметной области, которая действительно лежит в основе DDD. DDD гораздо больше о процессе, чем код. (как некоторые говорят, лучший образец DDD - сама книга!)

Тем не менее, пример приложения с хорошим комментарием должен, по крайней мере, раскрыть некоторые из этих решений и дать вам некоторое руководство с точки зрения согласования вашей доменной модели с техническими шаблонами, используемыми для ее реализации.

Вы не указали, какой язык вы используете, но я дам вам несколько на нескольких разных языках:

DDDSample - образец Java, который отражает примеры, о которых говорит Эрик Эванс в своей книге . Это хорошо прокомментировано и показывает ряд различных методов решения различных задач в отдельных ограниченных контекстах (т. Е. На уровне представления). Над ним активно работают, поэтому регулярно проверяйте его на наличие обновлений.

dddps - образец приложения C # Тима Маккарти для его книги. Доменно -управляемый дизайн .NET с C #

Архитектура S # arp - прагматичный пример C #, не такой «чистый» подход DDD, возможно, из-за отсутствия реальной проблемы домена, но все же хороший чистый подход.

Со всеми этими примерами приложений, вероятно, лучше всего проверить последние версии соединительных линий от SVN / что угодно, чтобы действительно получить представление о шаблонах мышления и технологии, поскольку они должны регулярно обновляться.

Майкл Харт
источник
2
Как упомянуто @Mehdi в оригинальном комментарии к вопросу, вы должны добавить замечательный пример от Вона Вернона. Это лучшая реализация шаблона DDD, которую я когда-либо видел: github.com/VaughnVernon/IDDD_Samples
Sylvain Lecoy
Я знаю, что это старый, но пример из, dddpsкажется, является полностью анемичным и фактически противоречит ООП. Ни один из объектов домена не имеет никакого поведения, и классы уровня обслуживания в основном представляют собой делегирование 1: 1 в репозитории. Я не уверен, следует ли это считать «хорошим» примером DDD? Я все еще учусь сам, но примеры в S # arp Architecture, кажется, являются лучшим примером для тех, кто изучает DDD, поскольку он охватывает как состояние, так и поведение, что является хорошим дизайном ООП.
Дэвид Андерсон
Теперь вы должны добавить превосходный образец Vaugnh Vernon, автора «Реализация доменного дизайна (IDDD)»: github.com/VaughnVernon/IDDD_Samples
Сильвен Лекой
23

Не исходные проекты, скажем так, но я наткнулся на Parleys.com, у которого есть несколько хороших видео, которые довольно хорошо освещают DDD (требуется флеш):

Я нашел это намного более полезным, чем почти несуществующие примеры DDD, которые в настоящее время доступны.

Тодд смит
источник
ссылки не работают
sidgate
11

Проверьте Проект Шелк . Он демонстрирует не только DDD, но и другие передовые модели. Это отличный ресурс для любого веб-разработчика. Полный обзор проекта можно найти на MSDN .

user996985
источник
Исходный код больше не доступен :(
Дерик
7

Это хороший пример, основанный на дизайне, управляемом доменом, и объясняет, почему важно иметь отдельный уровень домена.
Microsoft испания - DDD N Layer Architecture

Thurein
источник
1
Я не могу проголосовать за это, но захожу в блог Айенде, чтобы понять, почему он считает это плохим примером. ayende.com/blog/19457/…
Крис
1
ссылка, которую вы предоставляете, не работает, сообщение об ошибке: «Проект« microsoftnlayerapp »не найден»
Омар AMEZOUG