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
Изучение разновидностей гарантий доставки
Обеспечение согласованности в распределенных системах
Вы будете получать информацию о предстоящих мероприятиях в онлайне в выбранных категориях. Обещаем, никакого спама! Вы сможете отписаться в любое время.
Город Зовёт на мероприятия!
Обязательно зайдите в вашу почту и подтвердите подписку прямо сейчас.
Если письма от нас нет в папке "Входящие", проверьте, пожалуйста, папку "Рассылки" или "Спам".