Предметно-ориентированное проектирование (DDD)
Ваша корзина пуста
Сумма: 0 руб.

Курс Предметно-ориентированное проектирование (Domain-Driven Design)

О курсе

Предметно-ориентированное проектирование

Курс Предметно-ориентированное проектирование" (Domain-Driven Design, DDD)

                                                                                                            

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

 

Курс "Предметно-ориентированное проектирование" предназначен для тех, кто хочет углубить свои знания в проектировании сложных систем и научиться создавать программное обеспечение, которое точно соответствует бизнес-требованиям.

 

Цель курса

Изучение основ DDD. Научиться понимать ключевые концепции, такие как домен, ограниченный контекст (Bounded Context), универсальный язык (Ubiquitous Language), сущности (Entities), объекты-значения (Value Objects), агрегаты (Aggregates) и доменные события (Domain Events).

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

 

Аудитория

• Разработчики программного обеспечения

• Архитекторы ПО

• Аналитики и проектировщики: специалисты, работающие с бизнес-требованиями и хотят научиться лучше переводить их в технические решения

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

 

После окончания курса выпускники будут уметь:

• Проектировать сложные системы. Создавать модели, которые точно отражают бизнес-логику и требования.

• Применять DDD-подходы. Использовать ограниченные контексты, универсальный язык, агрегаты и другие паттерны DDD.

• Работать с архитектурой: проектировать системы с использованием CQRS, Event Sourcing и микросервисов.

• Управлять сложностью. Декомпозировать большие системы на более мелкие и управляемые части.

• Эффективно взаимодействовать с заинтересованными сторонами проекта, используя универсальный язык.

• Принимать архитектурные решения, выбирать подходящие подходы и инструменты для решения задач в зависимости от контекста.

 

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

• Базовые знания программирования: понимание основ ООП (объектно-ориентированного программирования) и умение писать код на одном из языков (например, C#, Java, Python).

• Опыт разработки ПО: понимание жизненного цикла разработки программного обеспечения и работы с базами данных.

• Знание основ проектирования: базовое понимание паттернов проектирования (например, MVC, Repository, Factory и т.д.).

 

• Понимание бизнес-процессов: умение анализировать и работать с требованиями заказчиков.

• Базовые знания архитектуры ПО. Понимание различий между монолитной и микросервисной архитектурой.

 

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

Расписание и цены
Форма обучения Академ. часы Ближайшая группа Цена
Частные лица Организации
Очная с применением ДОТ. Режим обучения: пн-пт 24
16.06.2025
50 000 руб. 50 000 руб.
Очная с применением ДОТ. Режим обучения: пн-пт 24
16.06.2025
50 000 руб. 50 000 руб.
Очная с применением ДОТ. Режим обучения: пн-пт 24
16.06.2025
50 000 руб. 50 000 руб.
Форма обучения Академ. часы Ближайшая группа Цена
Частные лица Организации
Очная с применением ДОТ. Режим обучения: пн-пт 24
16.06.2025
50 000 руб. 50 000 руб.
Форма обучения Академ. часы Ближайшая группа Цена
Частные лица Организации
Очная с применением ДОТ. Режим обучения: пн-пт 24
16.06.2025
50 000 руб. 50 000 руб.
Форма обучения Академ. часы Ближайшая группа Цена
Частные лица Организации
Очная с применением ДОТ. Режим обучения: пн-пт 24
16.06.2025
50 000 руб. 50 000 руб.
Этот курс набирает желающих участников. Отправьте заявку на участие, а когда наберётся достаточное количество, мы с вами свяжемся.
Заказать обучение
Программа курса

Модуль 1. Стратегическое проектирование

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

 

Разделение предметной области на поддомены

Методы анализа предметной области и ее декомпозиции на поддомены.

Что такое поддомены (Core Domain, Supporting Subdomain, Generic Subdomain).

• Как идентифицировать ключевые поддомены, которые приносят наибольшую ценность бизнесу.

• Примеры разделения предметной области на поддомены.

 

Контексты и их границы

Концепция ограниченных контекстов (Bounded Context) и их роли в проектировании.

• Что такое ограниченный контекст и как он помогает управлять сложностью.

• Как определить границы контекстов.

• Примеры ограниченных контекстов в реальных проектах.

 

Карта контекстов

Техники визуализации взаимодействия между ограниченными контекстами.

• Что такое карта контекстов (Context Map).

Типы взаимоотношений между контекстами (Partnership, Shared Kernel, Customer-Supplier и др.).

• Практические примеры создания карт контекстов.

 

Модуль 2. Тактическое проектирование

Низкоуровневое проектирование, которое помогает реализовать модели предметной области в коде.

 

Модели предметных областей

Методы создания точных и эффективных моделей предметной области.

• Что такое модель предметной области.

• Как использовать универсальный язык (Ubiquitous Language) для создания моделей.

• Примеры моделей предметной области.

 

Агрегаты и сущности

Концепции агрегатов (Aggregates) и сущностей (Entities).

• Что такое сущности и как они отличаются от объектов-значений.

• Что такое агрегаты и как они помогают управлять целостностью данных.

• Примеры проектирования агрегатов и сущностей.

 

Объекты-значения

Концепции объектов-значений (Value Objects).

• Что такое объекты-значения и как они отличаются от сущностей.

• Примеры использования объектов-значений в моделях.

 

Репозитории и фабрики

Роли репозиториев (Repositories) и фабрик (Factories) в DDD.

• Что такое репозитории и как они используются для управления агрегатами.

• Что такое фабрики и как они помогают создавать сложные объекты.

• Примеры реализации репозиториев и фабрик.

 

Модуль 3. Реализация на практике

Применение DDD в реальных проектах и закреплению полученных знаний через практические задания.

 

Примеры использования DDD в реальных проектах

• Кейсы применения DDD в реальных проектах.

• Примеры успешного применения DDD.

Разбор ошибок и проблем, возникающих при внедрении DDD.

 

Практические задания для закрепления материала

• Задания по проектированию моделей предметной области.

• Задания по созданию ограниченных контекстов и карт контекстов.

• Задания по реализации агрегатов, сущностей и объектов-значений.

 

Модуль 4. Интеграция систем

Методы интеграции различных частей системы и управления взаимодействием между ними.

 

Антипаттерны интеграции

Изучение типичных ошибок при интеграции систем.

• Что такое антипаттерны интеграции.

• Примеры антипаттернов и их последствия.

 

Использование событий и сообщений

Понимание роли событий (Domain Events) и сообщений в интеграции систем.

• Что такое доменные события.

• Как использовать события для интеграции систем.

• Примеры реализации событий.

 

REST и CQRS

Изучение методов интеграции через REST и CQRS (Command Query Responsibility Segregation).

• Что такое REST и как его использовать для интеграции.

• Что такое CQRS и как он помогает разделять команды и запросы.

• Примеры использования REST и CQRS.

 

Модуль 5. Тестирование и рефакторинг

Методы тестирования и улучшения кода, созданного с использованием DDD.

 

Тестирование моделей предметной области

Изучение методов тестирования моделей предметной области.

• Как тестировать сущности, объекты-значения и агрегаты.

• Примеры написания тестов для моделей.

 

Рефакторинг кода с использованием DDD

Понимание методов улучшения кода с использованием DDD.

• Как проводить рефакторинг кода для улучшения его соответствия DDD-принципам.

• Примеры рефакторинга.

Документы об окончании
Тесты к курсу

Раздел не найден.