Научишься писать код который не превращается в legacy и выдерживает любые изменения требований

Domain Driven Design и Clean Architecture на языке C#

Разберёшься почему контроллер-сервис-репозиторий — путь к легаси
Много практики
Каждый модуль — задание на кодирование реального сервиса
Спроектируешь сервис который не стыдно показать на собеседовании
Рабочая структура сервиса которую возьмёшь в свой проект
Кирилл Ветчинкин
Автор курса. Действующий архитектор Авито. Ex Staff Engineer в "Купер". Применяет DDD с 2019 года.
Портфолио
Структура
Готовый шаблон
Онлайн
Старт 29 июня
1.5 месяца

“Наш код был сложным и непонятным”

В команде мы страдали от того, что код был слишком запутанным: одна фича затрагивала десятки файлов, а новые разработчики тратили месяцы, чтобы вникнуть.

“В команде все видят DDD по-разному”

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

“Тесты были слишком сложными”

Моков было столько что тест проверял не логику, а то как мы замокали инфраструктуру. Оказалось — это классический симптом когда домен не отделён от инфраструктуры.

“Когда бизнес менял требования — все разваливалось”

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

“Не понимал, как выделять доменную модель и её компоненты”

Агрегаты, value objects, доменные события — всё это было для меня абстрактными понятиями.

“Накопилось много теории, но в голове был хаос”

До курса я прочитал книги по DDD, статьи, смотрел выступления, но всё это оставалось разрозненным.
Не знал, как начать применять эти знания на практике.
Звучит знакомо?

“Накопилось много теории, но в голове был хаос”

“Наш код был сложным и непонятным”

Реализуешь HTTP, gRPC и Kafka адаптеры

Научишься менять транспорт не трогая логику — HTTP, gRPC, Kafka подключаются как адаптеры, домен остаётся чистым
Что будет на курсе

Напишешь тесты которые не ломаются

Unit на домен, Integration на Use Case — тесты дешёвые в написании и стабильные при изменениях
Что останется после курса

Разберёшь все тактические паттерны DDD

Научишься выделять Value Object, проектировать Entity и реализовывать Aggregate — избегая популярных ошибок

Создашь полноценный микросервис

Освоишь Clean Architecture — Hexagonal и Onion подходы, выстроишь чёткую структуру слоёв
После курса
ты сможеш

Реализуешь Use Case и Domain Service

Освоишь CQS подход, реализуешь команды и медиаторы — бизнес-логика не будет знать про инфраструктуру

С DDD ты на шаг впереди на Senior и Tech Lead позициях

Многие компании ищут разработчиков, умеющих работать с этим подходом
Не уверен?
посмотри первый модуль
Востребованность и зарплаты:
Senior-специалист
с опытом более 3 лет
450 000+ ₽
Middle-специалист
с опытом от 1 до 3 лет
250 000+ ₽
100 000+ ₽
Junior-специалист
с опытом от 1 года
Проектировать Aggregate, Entity и Value Object в реальном коде
Подключать gRPC, HTTP и Kafka не нарушая границы домена

Применять Repository и Adapter осознанно, а не по шаблону

Писать тесты, которые легко поддерживать
Гарантировать согласованность данных в распределённой системе
Обосновывать DDD команде и получать согласие, а не скепсис
Публиковать Domain Event и передавать их по Kafka
Рабочий репозиторий с микросервисом на GitHub — покажешь на собеседовании или код-ревью

Проект в портфолио или резюме

Итоговый проект станет шаблоном который возьмёшь за основу в своей команде

Готовый шаблон микросервиса

Выстраивать архитектуру сервиса с нуля
Обучение проходит через практику на кейсе

Видеуроки

Эксперт шаг за шагом создаёт микросервис, раскрывая ключевые паттерны DDD и объясняя как избежать ошибок

Чат с экспертом

В закрытом чате автор курса лично отвечает на твои вопросы. На скриншоте реальный чат потока

Практика на реальном кейсе

Напишешь сервис диспетчеризации заказов — с DDD, Kafka, gRPC и Clean Architecture внутри

Персональная обратная связь

Автор курса лично проверит твой код — укажет на ошибки и объяснит как правильно

Живые разборы

Только на тарифе "Эксперт". Кирилл разбирает код реальных проектов вживую — увидишь как эксперт думает над архитектурной проблемой и принимает решения

Middle

разработчикам

Пишешь 2-3 года, но в реальном проекте архитектура разваливается с каждым новым требованием — курс даст структуру которой не хватает

Senior разработчикам

Слышал про агрегаты и доменные события — но в реальном коде всё равно получается каша. Разберёшься как применять DDD правильно, а не "в теории"
2

TeamLead,
CTO

Хочешь чтобы вся команда писала код по одним стандартам — берёшь шаблон сервиса из курса и внедряешь как эталон.
3
1
Кому подойдёт этот курс

Разработал архитектурный шаблон микросервиса с применением DDD в «СберМаркет»

Cпикер крупных IT-конференций по разработке и Архитектуре ПО: ArchDays, Highload++, Podlodka, РИТ

Автор курса —
Кирилл Ветчинкин

Ex Staff Engineer в «Купер», ex Head of Backend в «BCS Broker»

Действующий архитектор в «Авито»
6+ лет
опыт применения DDD

15 лет

опыт в разработке
4.8 / 5
оценка курса студентами
Спикер и автор курса — Кирилл Ветчинкин
Разработал архитектурный шаблон микросервиса с применением DDD в «СберМаркет»
Cпикер крупных IT-конференций по разработке и Архитектуре ПО: ArchDays, Highload++, Podlodka, РИТ
Ex Staff Engineer в «Купер», ex Head of Backend в «BCS Broker»
Действующий архитектор в «Авито»
15 лет
опыт в разработке
6+ лет
опыт применения DDD
4.8 / 5
оценка курса студентами
6 недель обучения
12 заданий на кодирование
80% курса — практика
Регулярные обновления
Программа курса
Содержание
Практика
Урок 1: Dependency Inversion Principle
Урок 2: Отличие Hexagonal / Onion / Clean архитектуры
Урок 3: Роль слоев приложения
Урок 4: Реализация структуры микросервиса в соответствии с Clean Architecture
ДЗ: Определить слои приложения в соответствии с Clean Architecture
Содержание
Практика
Урок 1: Способы реализации Application Core
Урок 2: Domain Layer
Урок 3: Анемичная и богатая Domain Model
Урок 4: Реализация паттерна Value Object (объект значения)
ДЗ: Реализовать Value Object «Location» в соответствии с бизнес-правилами
Содержание
Практика
Урок 1: Реализация паттерна Entity (сущность)
Урок 2: Признаки Entity
Урок 3: Инварианты
Урок 4: Хранение в БД
ДЗ: Реализовать Entity “Assignment” в соответствии с бизнес-правилами
Содержание
Практика
Урок 1: Реализация паттерна Aggregate (агрегат)
Урок 2: Строгая согласованность
Урок 3: Ловушка «Реального мира»
Урок 4: Размер агрегата
ДЗ: Реализовать Aggregate «Courier» в соответствии с бизнес-правилами
Содержание
Практика
Урок 1: Реализация паттерна Domain Service (сервис предметной области)
Урок 2: Смысл и назначение
Урок 3: Отличие от Application Service
Урок 4: Популярные ошибки реализации
ДЗ: Реализовать в Domain Service алгоритм диспетчеризации заказов
Содержание
Практика
Урок 1: Создание БД с помощью EF Migration
Урок 2: Основные ошибки при реализации Repository
Урок 3: Реализация паттерна Repository
Урок 4: Покрытие логики Integration тестами
ДЗ: Реализовать Repository для Aggregate «Order» и «Courier»
Содержание
Практика
Урок 1: Чем плох Application Service
Урок 2: Реализация паттерна "Command"
Урок 3: CQS подход
Урок 4: Пример реализации
ДЗ: Реализовать все Use Case приложения, применить CQS
Содержание
Практика
Урок 1: Contract-first подход
Урок 2: Знакомство с Swagger Open API
Урок 3: Связь HTTP Handler и Use Case
Урок 4: Генерация HTTP Server из контракта
ДЗ: Реализовать входящий HTTP адаптер. Сгенерировать HTTP Server из Swagger Open API контракта
Содержание
Практика
Урок 1: Знакомство с gRPC и Protobuf
Урок 2: Генерация gRPC Client из контракта
Урок 3: Из какого слоя делать внешние вызовы
Урок 4: Пример реализации порта и gRPC адаптера
ДЗ: Реализовать исходящий gRPC адаптер. Сгенерировать gRPC Client из Protobuf
Содержание
Практика
Урок 1: Знакомство с kafka и Protobuf
Урок 2: Генерация Integration Event из контракта
Урок 3: В каком слое обрабатывать сообщения Kafka
Урок 4: Создание Kafka адаптера (consumer)
ДЗ: Реализовать входящий Kafka адаптер. Сгенерировать Integration Event из Protobuf
Содержание
Практика
Урок 1: Реализация паттерна Domain Event (событие предметной области)
Урок 2: Отличия Domain Events и Integration Events
Урок 3: Где порождать Domain Events
Урок 4: Создание Kafka адаптера (producer)
ДЗ: Реализовать Domain Event и исходящий Kafka адаптер. Сгенерировать Integration Event из Protobuf
Содержание
Практика
Урок 1: Разновидности гарантий доставки
Урок 2: Обеспечение согласованности в распределенных системах
Урок 3: Реализация паттерна Outbox
Урок 4: Реализация паттерна Polling publisher
ДЗ: Обеспечить согласованность данных. Провести отладку и финальный запуск проекта
Курс прошли уже более
350 человек
Вот некоторые отзывы
«Присутствие практической части, что почти не встречается в рунете на курсах по DDD»
Замечательная комбинация подачи теории и закрепление практикой. Практические задания не затянуты и покрывают суть урока. В целом понравилось, что решение получилось стройным, максимально понятным и не переусложенным/примитивным.
Ну и сама актуальность темы DDD и присутствие практической части, что почти не встречается в рунете на курсах по DDD
Илья (C# разработчик)
«В целом большая приближенность к реальному проекту»
Было интересно разобраться с адаптерами и портами, что доступ к доменной модели должен осуществляться через поведение. Вообще в целом большая приближенность к реальному проекту! Отдельно спасибо за ссылки с доп. материалами.

Эмоции положительные, подача материала последовательная и понятная. Курс позволил многое прояснить и структурировать разрозненные знания. Большое спасибо! Удачи Вам и развития!
Игорь (Senior, C# backend)
«Один из лучших курсов, который я проходил, методически сделан прекрасно»
Практика применение DDD на практически полноценном примере/продукте (не какой ни будь типовой Pet).

Один из лучших курсов, который я проходил, методически сделан прекрасно, была и домашняя работа, и лекции, и проверка домашней работы , ясное и краткое изложение. Спасибо большое!
Андрей (Techlead C#)
«Читал книги по DDD, но честно ничего не понимал как это реализовывать в коде»
Спасибо за курс, мне было очень полезно и познавательно. Читал книги по DDD, но честно ничего не понимал как это реализовывать в коде, всегда это как-то поверхностно было. Треннинг внес ясность.

Мне понравились задания, все задания были полезны. Нехватило про паттерн inbox (в курсе был только outbox). Понравилось про аггрегаты и доменные события. Теперь понимаю, что такое агрегаты.
Андрей (C# разработчик, Middle+)
«Курс идеален для новых разработчиков хорошо подходит и опытным»
Курс идеален для новых разработчиков хорошо подходит и опытным, хорошо показаны принципы и плюсы hexagon-архитектуры мне очень понравилось и было полезным, спасибо!

- рабочий проект с реальной предметной областью
- хорошо раскрыты несколько возможностей удалённого взаимодействия
- хорошо раскрыта тема тестов, какие бывают и как можно тестировать интеграцию и компоненты
Наталья (C#, middle)
«На практике использовали актуальные технологии программирования»
Курс был очень информативным и полезным.
Рассмотрели основные подходы к архитектуре микросервиса, применили некоторые из них на практике. Помимо этого на практике использовали актуальные технологии программирования, такие как gRPC, Swagger Open API, EF Code First, очереди сообщений, MediatR. Было интересно получить новый опыт работы с различными инструментами. В результате получили рабочий проект, который можно добавить в портфолио.
Екатерина (C# middle)
«Ощущается “выстраданность” этого решения в реальных “боевых” условиях»
Курс восхитительный!
Высокая концентрация полезной информации. Максимальная приближенность к реальным проектам.

Очень понравилась реализация hexagonal architecture и темплейт проекта в целом. Ощущается “выстраданность” этого решения в реальных “боевых” условиях.

Прекрасная структура курса: успели проговорить базовые концепции, проработать продвинутые, и еще все это сделали руками.

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

Быстрая обратная связь и ответы чате позволили мне быстро получать ответы на свои вопросы.
Твердая десятка с плюсом по пятибальной шкале!
Игорь (C# разработчик)
«Быстрые ответы в чате, помощь с разбором возникающих проблем»
Пройденный курс является логическим продолжением курса “Микросервисная архитектура” и позволяет на практике закрепить то, что ранее давалось в теории.
Перед курсом повторно пересмотрел видеоматериалы курса “Микросервисная архитектура”, что очень помогло в освоении материала текущего курса.

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

К материалам курса буду периодически возвращаться, т.к. объем новых знаний получился довольно объемным и требует дополнительного переосмысления и изменения прежней картины мира.
Кириллу очень благодарен за обратную связь, быстрые ответы в чате, помощь с разбором возникающих проблем и просто за хорошо поставленную речь, которую приятно слушать!
Рекомендую курс всем архитекторам, разработчикам и системным аналитикам.
Александр (C# разработчик)
«Курс дает практику для возможности закремпления полученных знаний»
Сейчас с основной задачей с которой приходится сталкиваться - это изминение менталитета разработчиков на то, как можно иначе писать код и показать ценность этого.

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

Моя оценка:
1. Структурирование знаний. (9/10)
2. Обьяснение сложных концепций доступным языком. (10/10)
3. Наглядные илюстрации и примеры проектов на разных языках программирования (9/10)
Теймур (.Net TeamLead)
«С акцентом на проработку архитектуры на примере сервиса Доставки»
Курс является гармоничным развитием курса "Микросервисная архитектура" с акцентом на проработку архитектуры на примере сервиса Доставки.
Для меня, как системного аналитика, курс был достаточно сложным, его прохождение заняло все свободное время, однако наличие эталонного решения и чата с поддержкой, а так же логически последовательно изложенный материал способствовали успешному усвоению материалов курса.

Для прохождения курса необходимы базовые знания работы с ORM, DI, конфигурирования приложения, принципы работы c web приложениями.
Основная ценность курса заключается в предоставлении комплексного материала по разработке готового микросервиса который можно использовать в рабочих проектах.
Алексей (Cистемный аналитик)
Попробуй первый модуль бесплатно
  • Пойми подходит ли тебе формат и подача материала
  • Разберись есть ли архитектурные проблемы в твоём коде — ещё до оплаты
Выбери свой тариф
Запись в поток закрывается через
32 : 15 : 39 : 08
Дни
Часы
Минуты
Секунды
Физическим лицам
Юридическим лицам
Для тех кто ещё не уверен нужно ли это
Демо
  • 1 модуль полностью
  • Чеклист антипаттернов для самодиагностики
  • Узнаешь есть ли архитектурные проблемы в твоём текущем проекте
  • Без оплаты и обязательств
Для тех кто хочет персональный разбор от эксперта
Эксперт
  • Доступ ко всем модулям
  • Проверка ДЗ
  • Чат потока
  • Доступ к записям на 3 года
  • Сообщество выпускников
  • Свидетельство об участии*
  • Приоритетная проверка ДЗ
  • 3 живых разбора кода реальных проектов
  • 2 архитектурных ревью твоего реального проекта: до и после
Бонусы:
  • Структурные шаблоны проектирования
  • SOLID принципы программирования и разработки программного обеспечения
Бонусы:
  • Структурные шаблоны проектирования
  • SOLID принципы программирования и разработки программного обеспечения
  • GRASP шаблоны проектирования
Проверь есть ли проблема в твоём коде
Бесплатно
после 12 января
36 900 ₽
Рассрочка от 2 900 ₽ в месяц
35 000 ₽
Осталось 7 из 10 мест
60 000 ₽
после 12 января
80 000 ₽
после 12 января
41 900 ₽
Для тех кто хочет разобраться и применить
Практик
  • Доступ ко всем модулям
  • Проверка ДЗ
  • Чат потока
  • Доступ к записям на 3 года
  • Сообщество выпускников
  • Свидетельство об участии*
Дни
Часы
Минуты
Секунды
Эксперт
  • Доступ ко всем модулям
  • Проверка ДЗ
  • Чат потока
  • Доступ к записям на 3 года
  • Сообщество выпускников
  • Свидетельство об участии*
  • Приоритетная проверка ДЗ
  • 3 живых разбора кода реальных проектов
  • 2 архитектурных ревью твоего реального проекта: до и после
Демо
  • 1 модуль полностью
  • Чеклист антипаттернов для самодиагностики
  • Узнаешь есть ли архитектурные проблемы в твоём текущем проекте
  • Без оплаты и обязательств
Практик
  • Доступ ко всем модулям
  • Проверка ДЗ
  • Чат потока
  • Доступ к записям на 3 года
  • Сообщество выпускников
  • Свидетельство об участии*
Бонусы:
  • Структурные шаблоны проектирования
  • SOLID принципы программирования и разработки программного обеспечения
Цена для юрлиц выше из-за договора и закрывающих документов.
40 000 ₽
Бонусы:
  • Структурные шаблоны проектирования
  • SOLID принципы программирования и разработки программного обеспечения
  • GRASP шаблоны проектирования
Цена для юрлиц выше из-за договора и закрывающих документов.
65 000 ₽
Бесплатно
Обучение команды под ключ
Напишите нам — обсудим формат и выставим счёт
Единый стандарт архитектуры в команде — меньше споров на код-ревью, быстрее онбординг новых разработчиков
info@microarch.ru
Частые вопросы

Начни бесплатно

Урок 1:
Анемичная доменная модель
  • Структура сервиса по Clean Architecture
  • Value Object вместо примитивов — первый шаг к богатой модели
  • Почему это решает проблемы которые ты только что увидел
Следующий урок:
*Свидетельство об участии не является документом об образовании и (или) о квалификации.