Словарь

Domain driven design

Domain driven design (DDD) — подход к разработке приложений, основанный на выделении доменов (domain).

Домен — область знаний/деятельности, для которой разрабатывается приложение. Ясно, что для юристов есть свои термины и важные понятия, которые отличаются от слов, используемых в нефтегазовой промышленности. Причем это не просто слова, они отражают важные для заказчика процессы, связи. Именно поэтому важно уделять внимание терминам, которые используются в данной сфере. Это обеспечивается постоянным общением двух сторон — разработчиков приложения и клиентов. Такой подход отражает главный принцип DDD — разработка не должна быть в отрыве от бизнес-задач. DDD не является инструкцией или методологией, а составляет набор правил и ориентиров.

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

Модель — система абстракций, которая описывает отдельные характеристики домена. Как и физическая модель, упрощающая понимание и изучение объекта, помогает решить проблемы, связанные с данным доменом.

Агрегаты представляют собой объединения сущностей и ценностных объектов с четко очерченными границами. Можно представить себе агрегат просто как группу, которая позволяет обращаться сразу ко всем элементам, входящим в неё. Например, вместо того чтобы делать команду «нарезать яблоко» и повторять её n раз, можно все яблоки объединить в группу «яблоки» и применить к этой группе команду «нарезать».

Сервисы — это функции, которые не привязаны к сущностям или ценностным объектам. Грубо говоря, действие в себе.

Репозитории — это такие сервисы, которые используют глобальный интерфейс, чтобы обеспечить доступ ко всем сущностям и ценностным объектам, находящимся в конкретной группе агрегатов. Например, можно считать команду «резать» репозиторием, когда она применяется к группе агрегатов «фрукты», которая включает агрегаты «яблоки», «груши», «бананы».

Использование подхода «Domain driven design» при проектировании архитектуры сложных корпоративных информационных систем позволяет сделать проще поддержание изменений в проекте и эффективнее тестировать новые релизы.

Пользуясь настоящим сайтом, вы даете свое согласие на использование файлов cookies