О чём курс

Чем теснее связь между разработкой программного обеспечения и его бизнес-стратегией, тем проще будет поддерживать и развивать систему для удовлетворения будущих потребностей бизнеса, что в конечном итоге приведет к более успешным проектам программного обеспечения.

Предметно-ориентированное проектирование (DDD) предлагает общий подход к обеспечению большей гибкости и модифицируемости программных систем на основе более тщательного исследования предметной области и отражения ее структуры в разрабатываемой системе. Применение DDD позволяет снизить риск неудач в программных проектах за счет выстраивания более эффективной коммуникации между бизнес-заказчиком и командой разработки.

Практики Domain Driven Design делятся на две группы: стратегическую и тактическую.

Стратегические инструменты DDD используются для нахождения общего языка и целей разрабатываемой системы. На основе открытых общих целей, принимаются архитектурные решения высокого уровня: декомпозиции систем на компоненты и определения способов их интеграции на основе выстраивания общего понимания, как разрабатываемая система будет обеспечивать удовлетворение потребностей бизнеса.

Тактические паттерны DDD позволяют нам писать код таким образом, чтобы он отражал предметную область, отвечал ее целям и говорил на языке бизнеса.

На курсе вы узнаете, какие инструменты и практики DDD помогают в построении корпоративных систем со сложной бизнес-логикой и примените стратегические паттерны для декомпозиции предметной области в разрабатываемой системе. Для дальнейшего проектирования и реализации выделенных в результате декомпозиции компонентов, “ограниченных контекстов” в терминологии DDD, используем тактические паттерны DDD, в первую очередь Агрегаты. В основе материалов курса лежат реальные примеры разработанных систем.

Значительное время уделяется рассмотрению инструментов DDD для понимания задач бизнеса и решению практических задач, что даст вам возможность закрепить полученные знания на практике и отработать навыки применения стратегического дизайна и тактического моделирования.

Цели

После обучения участники будут:
  • Понимать, как инструменты DDD помогают реализовать сложные программные системы;
  • Уметь применять стратегические практики DDD для декомпозиции систем;
  • Уметь применять тактические паттерны DDD в рамках отдельного ограниченного контекста;
  • Уметь эффективно моделировать Агрегаты;
  • Использовать Доменные События для интеграции ограниченных контекстов.

Целевая аудитория

Разработчики разных уровней (от Junior до Senior), которые обладают знаниями ООП и ООД принципов, а также базовыми знаниями архитектурных паттернов.

Предварительная подготовка

  • Участие в проектах разработки ПО от 1 года на роли разработчика, архитектора или аналитика.
  • Желательно знание UML.

Для кого

Разработчик Разработчик
Архитектор ПО Архитектор ПО

Улучшаемые навыки

Архитектурные стили, Паттерны DDD, доменные события, агрегаты, микросервисная архитектура, Event Sourcing , CQRS

Темы курса

01 Обзор DDD (теория – 1 ч.)

02 Необходимые предварительные знания (теория – 2 ч.)
  • Доменные эксперты
  • Функциональные и нефункциональные требования, атрибуты качества
  • Шаблоны реализации доменной логики
  • Связь DDD & Agile
03 Инструменты DDD (теория – 5 ч. + практика – 5 ч.)
  • Общий язык
  • Роль историй в понимании домена
  • Event Storming
  • Domain Whirlpool
  • Разбиение на домены
  • Impact mapping
  • User story mapping
  • Quality Attribute Workshop

04 Стратегическое проектирование (теория – 2,5 ч. + практика – 1 ч.)
  • Типы поддоменов и разбиение 
  • Ограниченные контексты
  • Контекстные карты и шаблоны 
  • Топология команд
05 Архитектурные аспекты DDD (теория – 1,5 ч.)
  • Анемичный домен и причины
  • Работа с «устаревшими системами»
  • Интеграция контекстов
  • Типы сообщений и коммуникация между поддоменами
06 Тактическое проектирование (теория – 4 ч. + практика – 2 ч.)
  • Полезные шаблоны тактического дизайна 
  • Объекты значения и шаблоны на их основе
  • Сущности
  • Агрегаты 
  • Сервисы 
  • Фабрики 
  • Репозитории
07 Всего: теория – 16 ч. (67%), практика – 8 ч. (33%)

49 500 ₽

44 550 ₽ — для физ. лиц

Записаться на курс

Чему вы научитесь

01 Анализировать и создавать доменные модели, которые точно отражают бизнес-логику и потребности
02 Создавать общий язык (Ubiquitous Language) между техническими и нетехническими участниками проекта
03 Определять агрегаты и устанавливать границы контекста, что позволит вам организовать код и данные в соответствии с бизнес-правилами и упростит управление сложностью системы
04 Строить более гибкие и поддерживаемые архитектуры
05 Интегрировать доменно-ориентированные системы с внешними сервисами и приложениями, используя подходы, такие как события и API, что повысит взаимодействие и совместимость с другими системами

49 500 ₽

44 550 ₽ — для физ. лиц

Записаться на курс

Записаться на курс

49 500 ₽

44 550 ₽ — для физ. лиц

Юр. лицо — 49 500 ₽
Физ. лицо — 44 550 ₽
Открытая дата
Продолжая, я подтверждаю, что ознакомлен с Условиями использования и Порядком обработки персональных данных

Отзывы о курсе

Повысьте квалификацию И получите диплом
Отзывы учеников
Отличный тренинг! Очень крутые вещи рассказаны максимально просто. На практических занятиях отработали сложные моменты. После тренинга просто хочется максимально DDD внедрить в проект.
Тренинг понравился, структурировал мои теоретические знания по данной теме. Также приобрел практические знания. Особенно понравились дискусии по данной теме.
Очень понравился тренер Максим Кичук, который рассказывал о наглядных примерах из своего опыта работы. Понравилось, что помимо теории есть практика, которая потом обсуждается с тренером. У курса хорошие структурирование материала и практические задания на применение Event Sourcing.
Понравилась связь между практиками и лекциями, их объём и рекомендации от тренера. Было много интересных практических заданий, полезная обратная связь. Курс хороший, хотелось бы иметь возможность просмотра записей курса.
Для меня была новой вся парадигма проектирования, ориентированная на предметную область, поэтому курс оказался очень полезным! Материал представлен в доступных для разных уровней слушателей изложении. Преподавать очень развернуто отвечает на вопросы, связанные с применением кода.
Хороший тренинг на очень интересную тему. Понравились практические упражнения и то, что было много материалов по теории, которые можно использовать в работе. Классно, что есть возможность пообщаться с лектором и получить компетентные ответы на свои вопросы, но хотелось бы больше примеров.

Связанные курсы

ARC-014
16 часов

Архитектура в Agile-проектах

Практический курс по способам интеграции архитектурных решений с Agile для повышения качества и гибкости проектов.

от Middle

36 900 ₽

ARC-015
24 часа

Микросервисная архитектура

Основы микросервисной архитектуры, её связь с традиционными подходами и практические решения для проектирования систем.

от Middle

51 500 ₽

Наши ученики работают в:

Наши клиенты

Mail.ru
Альфа-Банк, банковская группа
Лаборатория Касперского
Магнит, розничная сеть
Спортмастер, сеть спортивных магазинов
ПСБ
Сбертех
Дзен
IT One
Ростелеком
Мегафон
Nexign
Ozon
Декатлон
X5 Group
Технониколь
Росатом
Газпром
Нлмк
ВСК
Синимекс

Не нашли, что искали? — Просто напишите, и мы поможем

Продолжая, я подтверждаю, что ознакомлен с Условиями использования и Порядком обработки персональных данных
Корпоративное обучение Оценка персонала Сертификация О нас Стань тренером Блог
Пользователь только что записался на курс ""
Спасибо!
Форма отправлена успешно.