Описание
Чем теснее связь между разработкой программного обеспечения и его бизнес-стратегией, тем проще будет поддерживать и развивать систему для удовлетворения будущих потребностей бизнеса, что в конечном итоге приведет к более успешным проектам программного обеспечения.
Применение предметно-ориентированного проектирования (DDD) позволяет снизить риск неудач в программных проектах за счет выстраивания более эффективной коммуникации между бизнес-заказчиком и командой разработки.
Практики DDD делятся на две группы: стратегическую и тактическую.
Стратегические инструменты DDD используются для нахождения общего языка и целей разрабатываемой системы. На основе открытых общих целей, принимаются архитектурные решения высокого уровня: декомпозиции систем на компоненты и определения способов их интеграции на основе выстраивания общего понимания, как разрабатываемая система будет обеспечивать удовлетворение потребностей бизнеса.
Тактические паттерны DDD позволяют нам писать код таким образом, чтобы он отражал предметную область, отвечал ее целям и говорил на языке бизнеса.
Значительное время уделяется рассмотрению инструментов DDD для понимания задач бизнеса и решению практических задач, что даёт возможность участникам закрепить полученные знания на практике и отработать навыки применения стратегического дизайна и тактического моделирования.удостоверение о повышении квалификации государственного образца
Цели
- Понимать, как инструменты DDD помогают реализовать сложные программные системы;
- Уметь применять стратегические практики DDD для декомпозиции систем;
- Уметь применять тактические паттерны DDD в рамках отдельного ограниченного контекста;
- Уметь эффективно моделировать Агрегаты;
- Использовать Доменные События для интеграции ограниченных контекстов.
Целевая аудитория
Разбираемые темы
-
1. Обзор DDD (теория – 1 ч.)
⠀ -
2. Необходимые предварительные знания (теория – 2 ч.)
- Доменные эксперты
- Функциональные и нефункциональные требования, атрибуты качества
- Шаблоны реализации доменной логики
- Связь DDD & Agile
-
3. Инструменты DDD (теория – 5 ч. + практика – 5 ч.)
- Общий язык
- Роль историй в понимании домена
- Event Storming
- Domain Whirlpool
- Разбиение на домены
- Impact mapping
- User story mapping
- Quality Attribute Workshop
-
4. Стратегическое проектирование (теория – 2,5 ч. + практика – 1 ч.)
- Типы поддоменов и разбиение
- Ограниченные контексты
- Контекстные карты и шаблоны
- Топология команд
-
5. Архитектурные аспекты DDD (теория – 1,5 ч.)
- Анемичный домен и причины
- Работа с «устаревшими системами»
- Интеграция контекстов
- Типы сообщений и коммуникация между поддоменами
-
6. Тактическое проектирование (теория – 4 ч. + практика – 2 ч.)
- Полезные шаблоны тактического дизайна
- Объекты значения и шаблоны на их основе
- Сущности
- Агрегаты
- Сервисы
- Фабрики
- Репозитории
-
Всего: теория – 16 ч. (67%), практика – 8 ч. (33%)
Александр – эксперт с практическим опытом более 14 лет. За свою карьеру он успешно реализовал проекты в ведущих российских и мировых IT-компаниях.
О проектах:
В рамках проектов Александр занимался разработкой клиентских (Web и Desktop) и серверных приложений (SOA, MSA, Mono), разработкой архитектурных IT-систем, настройкой рабочих и IT процессов, анализом и оптимизацией проектов по сложности и стоимости.
Также Александр занимался разработка IT-стратегий для клиентов и утверждением архитектурных стандартов для приложений, участвовал в разработке бизнес-архитектуры.
Текущая сфера интересов - разработка распределенных систем с ограниченным уровнем доверия.
Курсы, сертификаты, членство в профессиональных организациях:
-
ICAgile Certified Professional
-
MongoDB M220 JavaScript
-
MongoDB M220 Java