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