Я узнаю о доменно-управляемом дизайне, однако есть некоторые практические проблемы, которые меня смущают, и я думаю, что некоторые хорошие примеры могут проясниться.
Кто-нибудь знает какие-нибудь хорошие рабочие примеры кода, которые хорошо справляются с моделированием базовых концепций DDD?
Особенно интересует
- Иллюстративная модель предметной области
- Хранилища
- Использование Домена / Сервисов Приложений
- Объекты значения
- Совокупные корни
domain-driven-design
jlembke
источник
источник
Ответы:
Сложность с образцами DDD заключается в том, что они часто очень специфичны для предметной области, а техническая реализация получившейся системы не всегда показывает конструктивные решения и переходы, которые были сделаны при моделировании предметной области, которая действительно лежит в основе DDD. DDD гораздо больше о процессе, чем код. (как некоторые говорят, лучший образец DDD - сама книга!)
Тем не менее, пример приложения с хорошим комментарием должен, по крайней мере, раскрыть некоторые из этих решений и дать вам некоторое руководство с точки зрения согласования вашей доменной модели с техническими шаблонами, используемыми для ее реализации.
Вы не указали, какой язык вы используете, но я дам вам несколько на нескольких разных языках:
DDDSample - образец Java, который отражает примеры, о которых говорит Эрик Эванс в своей книге . Это хорошо прокомментировано и показывает ряд различных методов решения различных задач в отдельных ограниченных контекстах (т. Е. На уровне представления). Над ним активно работают, поэтому регулярно проверяйте его на наличие обновлений.
dddps - образец приложения C # Тима Маккарти для его книги. Доменно -управляемый дизайн .NET с C #
Архитектура S # arp - прагматичный пример C #, не такой «чистый» подход DDD, возможно, из-за отсутствия реальной проблемы домена, но все же хороший чистый подход.
Со всеми этими примерами приложений, вероятно, лучше всего проверить последние версии соединительных линий от SVN / что угодно, чтобы действительно получить представление о шаблонах мышления и технологии, поскольку они должны регулярно обновляться.
источник
dddps
кажется, является полностью анемичным и фактически противоречит ООП. Ни один из объектов домена не имеет никакого поведения, и классы уровня обслуживания в основном представляют собой делегирование 1: 1 в репозитории. Я не уверен, следует ли это считать «хорошим» примером DDD? Я все еще учусь сам, но примеры в S # arp Architecture, кажется, являются лучшим примером для тех, кто изучает DDD, поскольку он охватывает как состояние, так и поведение, что является хорошим дизайном ООП.Не исходные проекты, скажем так, но я наткнулся на Parleys.com, у которого есть несколько хороших видео, которые довольно хорошо освещают DDD (требуется флеш):
Я нашел это намного более полезным, чем почти несуществующие примеры DDD, которые в настоящее время доступны.
источник
Образец .NET DDD из доменной книги Эрика Эванса по дизайну можно найти здесь: http://dddsamplenet.codeplex.com
Ура,
Якуб Г
источник
Проверьте Проект Шелк . Он демонстрирует не только DDD, но и другие передовые модели. Это отличный ресурс для любого веб-разработчика. Полный обзор проекта можно найти на MSDN .
источник
Это хороший пример, основанный на дизайне, управляемом доменом, и объясняет, почему важно иметь отдельный уровень домена.
Microsoft испания - DDD N Layer Architecture
источник
ddd-cqrs-sample также является хорошим ресурсом. Написано на Java, Spring и JPA.
Обновленная ссылка: https://github.com/BottegaIT/ddd-leaven-v2
источник
Code Camp Server , пример кода Джеффри Палермо для книги ASP.NET MVC в действии . Хотя книга сосредоточена на уровне представления, приложение моделируется с использованием DDD.
источник