DDD и Clean Architecture помогает создавать гибкие и адаптивные приложения, способные быстро реагировать на изменения требований.
- С нуля разработаем сервис с применением DDD, Clean, CQS
- Спикер применял DDD в компаниях из разных сфер: Мегафон, БКС Брокер, СберМаркет
- 12 модулей + 6 Q&A сессий в Zoom
- Поддержка в чате
- 12 практических заданий на кейсе, приближенном к реальности
Кирилл Ветчинкин — опыт применения DDD с 2019 года.
- Principal Engineer в Купер (ex СберМаркет)
- Пишет код на C# с 2002 года
- Сейчас пишет на C# и Go
- Разработал архитектурный шаблон микросервиса с применением DDD в "Купер" (ex СберМаркет)
- Успешно реализовал ряд высоконагруженных систем на микросервисной архитектуре для Мегафон, Теле2, БКС Брокер, СберМаркет
- Постоянный спикер крупных IT-конференций по разработке и Архитектуре ПО: ArchDays, Highload++, Podlodka, РИТ, DevOpsDays, DotNext, DevOps Pro, MskDotNet Meetup и другие
- Обладает степенью MBA в IT (ВШЭ)
- 12 видеоуроков по 30-60 минут
- 12 практических заданий на кодирование
- Ревью кода и подробная обратная связь
- Поддержка в чате от самого эксперта
- 6 Q&A сессий в Zoom, для разбора ДЗ и вопросов
Junior, Middle, Senior разработчикам - Мир технологий быстро меняется, и даже опытным разработчикам важно постоянно улучшать свои навыки. Курс позволит изучить новые концепции и подходы к разработке. Которые сделает ваш уровень еще выше.
Аналитикам, менеджерам, всем тем, кто так или иначе не пишет код.
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 Migration
- Основные ошибки при реализации Repository
- Пример реализации
- Покрытие логики Integration тестами
7. Application Layer
- Чем плох Application Service
- Паттерн "Command" и "Mediator"
- CQS подход
- Пример реализации
8. Входящий HTTP адаптер
- Contract-first подход
- Проектирование REST API методов с помощью Swagger Open API
- Связь HTTP Handler и Use Case
- Пример реализации HTTP Server
9. Исходящий Grpc адаптер
- Знакомство с gRPC и Protobuf
- Формирование контракта в Protobuf
- Из какого слоя делать внешние вызовы
- Пример реализации gRPC Client
10. Входящий Kafka адаптер
- Знакомство с Kafka
- Формирование контракта
- Связь Kafka Consumer и Use Case
- Создание Kafka Consumer
11. Исходящий Kafka адаптер
- Domain Events и Integration Events
- Формирование контракта
- Из какого слоя отправлять события в Kafka
- Создание Kafka Producer
12. Eventual Consistency
- Изучение разновидностей гарантий доставки
- Обеспечение согласованности в распределенных системах
- Реализация паттерна Outbox
- Финальный запуск проекта и отладка
Telegram: @kirill_vet