Что это?
DDD(Domain Driven Design) – принцип проектирования и разработки систем и процессов, который регламентирует, что Бизнес-модели и схемы их взаимодействий должны быть единообразными, как в программном коде так и БП(бизнесс-процессах).
Основные тезисы подхода:
Единый язык
(ubiquitous language)
- Построен на основе терминов предметной области
- Его понимают и ИТ-специалисты, и эксперты бизнеса
- На нем описана модель ИТ-системы и ее место в бизнес-процессах
Единая модель
- Аналитик собирает требования и строит модель — сначала предметной области,
затем системы - Артефакты модели описывают систему и ее использование в бизнес-процессах
предприятия - Разработчик реализует модель
- Артефакты модели можно проследить в коде
Плюсы единой модели
- Верификация постановок бизнес-специалистами
- Общее понимание требований на стороне бизнеса
- Обсуждение модели бизнесом и ИT, поиск баланса в сложных вопросах
- Перенос моделей из других предметных областей
- Бизнес представляет потенциальные возможности системы и сложность различных доработок
- На этапе эксплуатации — эффективное общение бизнес-пользователей и ИT без квалифицированных переводчиков-аналитиков
Модель предметной области – модульная
Предметную область делим на ограниченные контексты
- Для каждого из них — свой единый язык и своя модель
- Целостность удерживает карта контекстов
- Для изоляции и выделения общего в моделях работают методы ООП
- Модели учитывают позицию фирмы: поставки и продажи — разные контексты и модели, хотя сделка одна — оптовая купля-продажа