Персональные инструменты
 

ADD 2010: Отчет Николая Гребнева/Мастер-класс Domain-Driven Design

Материал из CustisWiki

Перейти к: навигация, поиск
Андрей Бибичев

Хороший мастер-класс, но только для новичков в DDD. Вначале рассказывается о языке UML, затем идет проектирование на UML задачи автоматизации ГАИ, далее краткое введение в инструментарий и обзор шаблонов проектирования, часто использующихся при работе с доменной моделью (но напрямую к ней не относящуюся). Наибольший интерес представляет четвертая часть, где рассказывается о различных подходах к архитектуре в рамках DDD. И здесь я несколько неожиданно встретил у Андрея терминологию отличную от той, к которой я привык.

Андрей выделяет три архитектурных стиля — Rich, Pure, Anemic. И если я всегда воспринимал Rich-domain, как антоним Anemic (в соответствии с Фаулером), то Андрей под Rich понимает ручное управление персистентностью объектов доменной модели, что в первую очередь реализуется при использовании сценария Active Record. Я же такую архитектуру к DDD никогда не относил, так как управление персистентностью никак не является частью доменной модели и, даже если инструмент требует от нас ручного управления сохранением или загрузкой, то я считаю это «протечкой абстракций» и недостатком ORM, а не ключевым атрибутом архитектуры.

Трудно сказать, кто из нас прав, так как термины фактически не являются устоявшимися и, видимо, меняются от сообщества к сообществу. Источники, которые можно считать эталоном терминологии на текущий момент устарели (а это в первую очередь книга Фаулера «Архитектура корпоративных приложений») и, так уж получается, что словами каждый вертит, как хочет.