Онлайн-курс "Domain Driven Design и Clean Architecture на практике" (с примерами на языке C#)
О курсе
DDD и Clean Architecture помогают проектировать гибкие и адаптивные приложения, способные оперативно реагировать на изменение требований.
- С нуля создадим сервис с использованием DDD, Clean Architecture и CQS
- Спикер внедрял DDD в компаниях разных отраслей: Мегафон, БКС Брокер, СберМаркет
- 12 модулей и 6 Q&A-сессий в Zoom
- Поддержка в чате
- 12 практических заданий на примере проекта, приближенного к реальным условиям
Курс ведёт опытный разработчик
Кирилл Ветчинкин — практикует DDD с 2019 года.
- Principal Engineer в Купер (ex СберМаркет)
- Пишет код на языке программирования C# с 2002 года
- В настоящее время использует язык программирования C# и язык программирования Go
- Разработал архитектурный шаблон микросервиса с применением DDD в "Купер" (ex СберМаркет)
- Реализовал ряд высоконагруженных систем на микросервисной архитектуре для Мегафон, Теле2, БКС Брокер, СберМаркет
- Постоянный спикер крупных ИТ-конференций по разработке и архитектуре ПО: ArchDays, Highload++, Podlodka, РИТ, DevOpsDays, DotNext, DevOps Pro, MskDotNet Meetup и другие
- Имеет степень MBA в ИТ (ВШЭ)
Формат
- 12 видеоуроков по 30-60 минут
- 12 практических заданий по программированию
- Проверка кода и подробная обратная связь
- Поддержка в чате от автора курса
- 6 Q&A-сессий в Zoom для разбора домашних заданий и вопросов
Кому подойдет
Младшим специалистам, специалистам среднего уровня и старшим специалистам‑разработчикам — тем, кто хочет систематизировать знания и внедрить современные практики DDD и Clean Architecture. Программа ориентирована на практику и повышает профессиональные навыки.
Кому не подойдет
Аналитикам и менеджерам, а также специалистам, не занимающимся программированием.
Программа
1. Clean Architecture
- Dependency Inversion Principle
- Сравнение подходов Hexagonal / Onion / Clean
- Определим роль слоев приложения
- Проектирование структуры микросервиса по принципам Clean Architecture
2. Value Object
- Подходы к реализации Application Core
- Domain Layer
- Анемичная и богатая Domain Model: отличия и применение
- Реализация Value Object (объект значения)
3. Entity
- Реализация Entity (сущность)
- Признаки Entity
- Инварианты домена
- Организация хранения в базе данных
4. Aggregate
- Реализация Aggregate (агрегат)
- Строгая согласованность
- Типичная ловушка «реального мира»
- Выбор границ агрегата
5. Domain Service
- Реализация Domain Service (сервис предметной области)
- Цели и назначение
- Отличие от Application Service
- Популярные ошибки реализации
6. Repository
- Создание базы данных с помощью EF Migrations
- Типовые ошибки при реализации Repository
- Пример реализации
- Покрытие логики интеграционными тестами
7. Application Layer
- Ограничения Application Service
- Шаблоны Command и Mediator
- Подход CQS
- Пример реализации
8. Входящий HTTP адаптер
- Contract-first подход
- Проектирование методов программного интерфейса (API) в архитектурном стиле REST с помощью Swagger Open API
- Связь обработчика HTTP и Use Case
- Реализация HTTP-сервера
9. Исходящий Grpc адаптер
- Знакомство с gRPC и Protobuf
- Формирование контракта в Protobuf
- Определение слоя для внешних вызовов
- Реализация клиента gRPC
10. Входящий Kafka адаптер
- Знакомство с Kafka
- Проектирование контракта
- Связь потребителя Kafka и Use Case
- Создание потребителя Kafka
11. Исходящий Kafka адаптер
- Domain Events и Integration Events
- Проектирование контракта
- Определение слоя для отправки событий в Kafka
- Создание издателя Kafka
12. Eventual Consistency
- Виды гарантий доставки
- Обеспечение согласованности в распределенных системах
- Реализация шаблона Outbox
- Итоговый запуск проекта и отладка
Если нужна консультация - просто напишите:
Telegram: @kirill_vet