ARC-003 Domain Driven Design
Описание курса
Предметно-ориентированное проектирование (DDD) предлагает общий подход к обеспечению большей гибкости и модифицируемости программных систем на основе более тщательного исследования предметной области и отражения ее структуры в разрабатываемой системе. Участники курса узнают, какие инструменты и практики DDD помогают в построении корпоративных систем со сложной бизнес-логикой и применят стратегические паттерны для декомпозиции предметной области, для разрабатываемой системы. Для дальнейшего проектирования и реализации выделенных в результате декомпозиции компонентов, “ограниченных контекстов” в терминологии DDD, используем тактические паттерны DDD, в первую очередь Агрегаты. В основе материалов курса лежат реальные примеры разработанных систем.
Модуль 1
- Доменные эксперты
- Функциональные и нефункциональные требования, атрибуты качества
- Шаблоны реализации доменной логики
- Связь DDD & Agile
Модуль 2
- Общий язык
- Роль историй в понимании домена
- Event Storming
- Domain Whirlpool
- Разбиение на домены
- Impact mapping
- User story mapping
- Quality Attribute Workshop
Модуль 3
- Типы поддоменов и разбиение
- Ограниченные контексты
- Контекстные карты и шаблоны
- Топология команд
Модуль 4
- Анемичный домен и причины
- Работа с «устаревшими системами»
- Интеграция контекстов
- Типы сообщений и коммуникация между поддоменами
Модуль 5
- Полезные шаблоны тактического дизайна
- Объекты значения и шаблоны на их основе
- Сущности
- Агрегаты
- Сервисы
- Фабрики
- Репозитории