Для тех, кто устал от хаоса в коде: строим микросервис с чистой архитектурой, предсказуемыми тестами и бизнес-логикой в стиле DDD

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

Разработаете сервис с применением DDD и Clean Architecture
Реальный кейс
Научитесь разбивать приложение на слои, кодировать Domain Model
Добавите в свое портфолио проект, которым можно гордиться
Создадите сервис, который легко адаптировать под ваши задачи
Кирилл Ветчинкин
Автор курса, опыт применения DDD с 2019 года.
Применял DDD в компаниях из разных сфер: Мегафон, БКС Брокер, СберМаркет, Купер
Портфолио
Практика
Шаблон
Онлайн
Старт 27 августа
6 недель

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

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

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

Научитесь применять сложные аспекты DDD, такие как агрегаты, доменные события и репозитории. Сможете интегрировать DDD с другими подходами: MSA, CQS и Clean Architecture.
2

TeamLead,
CTO

Курс поможет вашей команде выстроить архитектурно грамотные и гибкие решения. Примеры сервисов из курса станут универсальными шаблонами, которые вы сможете взять за основу в вашей компании.
3
1
Кому подойдёт этот курс

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Реализуете связь бизнес-логики и инфраструктуры. Научитесь формировать порты и адаптеры, связывать их с бизнес-логикой.
Что будет на курсе

Напишем много
тестов

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

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

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

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

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

Реализуем Use Case и
Domain Service

Освоите работу с Domain Service, примените CQS подход, а также реализуете команды и медиаторы, связывая их с Use Case.

Знания DDD может повысить вашу ценность как специалиста

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

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

Итоговый проект станет универсальными шаблоном, который вы сможете взять за основу в вашей компании

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

Обосновывать применение
DDD в команде
Получите мгновенный бесплатный доступ к демо-урокам
  • оцените актуальность и полезность тем курса для вас
  • узнаете как устроены уроки, какой объём информации даётся за одно занятие
Обучение проходит через практику на кейсе

Видеуроки

На них эксперт шаг за шагом создаст микросервис "Корзина", раскрывая ключевые паттерны DDD и объясняя, как избежать ошибок. Смотрите лекции в любое время.

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

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

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

На курсе вы разработаете сервис “Диспетчеризации заказов”, решая реальные задачи бизнеса.

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

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

Вебинары

На вебинарах эксперт разберет домашние задания и сложные темы, даст ответы на ваши вопросы.
Это идеальный шанс понять материал глубже.
6 недель обучения
12 заданий на кодирование
80% курса — практика
Регулярно обнобляем курс
Программа курса
1 модуль
1 модуль
Clean Architecture
Научитесь определять ключевые слои приложения в соответствии с принципами Clean Architecture, разделяя логику, зависимости и ответственность.

Содержание:
Урок 1: Dependency Inversion Principle
Урок 2: Отличие Hexagonal / Onion / Clean архитектуры
Урок 3: Роль слоев приложения
Урок 4: Реализация структуры микросервиса в соответствии с Clean Architecture

Практика:
ДЗ: Определить слои приложения в соответствии с Clean Architecture
2 модуль
2 модуль
Value Object
Научитесь различать анемичную и богатую Domain Model, а также поймёте, как правильно реализовывать Value Object для чистого и поддерживаемого кода.
Содержание:
Урок 1: Способы реализации Application Core
Урок 2: Domain Layer
Урок 3: Анемичная и богатая Domain Model
Урок 4: Реализация Value Object (объект значения)

Практика:
ДЗ: Реализовать Value Object «Location» в соответствии с бизнес-правилами
3 модуль
3 модуль
Entity
Освоите реализацию тактического паттерна Entity, научитесь создавать сущности с четко определённой бизнес-логикой и инкапсулированными данными.
Содержание:
Урок 1: Реализация Entity (сущность)
Урок 2: Признаки Entity
Урок 3: Инварианты
Урок 4: Хранение в БД

Практика:
ДЗ: Реализовать Value Object «Location» в соответствии с бизнес-правилами
4 модуль
4 модуль
Aggregate
Научитесь управлять связанными объектами через единый корневой объект, правильно определять границы агрегатов и применять бизнес-логику в одном месте.
Содержание:
Урок 1: Реализация Aggregate (агрегат)
Урок 2: Строгая согласованность
Урок 3: Ловушка «Реального мира»
Урок 4: Размер агрегата

Практика:
ДЗ: Реализовать Aggregate «Courier» в соответствии с бизнес-правилами
5 модуль
5 модуль
Domain Service
Создадите и внедрите Domain Service в доменный слой приложения, выделив бизнес-логику, которая не относится напрямую к сущностям или агрегатам.
Содержание:
Урок 1: Реализация Domain Service (сервис предметной области)
Урок 2: Смысл и назначение
Урок 3: Отличие от Application Service
Урок 4: Популярные ошибки реализации

Практика:
ДЗ: Реализовать в Domain Service алгоритм диспетчеризации заказов
6 модуль
6 модуль
Repository
Развернете БД в Docker. Реализуете паттерн Repository, настроите работу с базой данных через EF Migrations и создадите надёжный слой данных, покрытый интеграционными тестами.
Содержание:
Урок 1: Создание БД с помощью Goose
Урок 2: Основные ошибки при реализации Repository
Урок 3: Пример реализации
Урок 4: Покрытие логики Integration тестами

Практика:
ДЗ: Реализовать Repository для Aggregate «Order» и «Courier»
7 модуль
7 модуль
Application Layer
Реализуете Use Case’ы приложения, применяя паттерны «Command» и «Mediator», а также следуя принципу CQS (Command Query Separation).
Содержание:
Урок 1: Чем плох Application Service
Урок 2: Паттерн "Command" и "Mediator"
Урок 3: CQS подход
Урок 4: Пример реализации

Практика:
ДЗ: Реализовать все Use Case приложения, применить CQS
8 модуль
8 модуль
Входящий HTTP адаптер
Реализуете входящий HTTP Adapter, связав REST API с бизнес-логикой через Use Case, и получите работающий HTTP сервер, сгенерированный из контракта OpenAPI.
Содержание:
Урок 1: Contract-first подход
Урок 2: Проектирование REST API методов с помощью Swagger Open API
Урок 3: Связь HTTP Handler и Use Case
Урок 4: Генерация HTTP Server из контракта

Практика:
ДЗ: Реализовать все Use Case приложения, применить CQS
9 модуль
9 модуль
Исходящий Grpc адаптер
Реализуете исходящий gRPC Adapter, создавая его по принципам портов и адаптеров в Clean Architecture, и освоите базовую настройку gRPC клиента с использованием Protobuf.
Содержание:
Урок 1: Знакомство с gRPC и Protobuf
Урок 2: Формирование контракта в Protobuf
Урок 3: Из какого слоя делать внешние вызовы
Урок 4: Пример реализации gRPC Client

Практика:
ДЗ: Реализовать исходящий адаптер. Сгенерировать gRPC Client из Protobuf
10 модуль
10 модуль
Входящий Kafka адаптер
Поднимите Kafka в Docker. Реализуете на основе контракта входящий Kafka-адаптер в соответствии с Clean Architecture, настроите его взаимодействие с Use Case.
Содержание:
Урок 1: Protobuf и Integration Events
Урок 2: Формирование контракта
Урок 3: В каком слое обрабатывать сообщения Kafka
Урок 4: Создание Kafka Consumer

Практика:
ДЗ: Реализовать входящий адаптер. Сгенерировать Integration Event из Protobuf
11 модуль
11 модуль
Исходящий Kafka адаптер
Cоздадите исходящий Kafka-адаптер, научившись отправлять Domain Events и преобразовывать их в Integration Events для внешних систем.
Содержание:
Урок 1: Domain Events и Integration Events
Урок 2: Формирование контракта
Урок 3: Из какого слоя отправлять события в Kafka
Урок 4: Создание Kafka Producer

Практика:
ДЗ: Реализовать Domain Event и исходящий адаптер. Сгенерировать Integration Event из Protobuf
12 модуль
12 модуль
Eventual Consistency
Реализуете паттерны Outbox и Polling Publisher. Создадите устойчивую к сбоям интеграцию с Kafka, обеспечивающую согласованность данных в распределённой системе.
Содержание:
Урок 1: Разновидности гарантий доставки
Урок 2: Обеспечение согласованности в распределенных системах
Урок 3: Реализация паттерна Outbox
Урок 4: Реализация паттерна Polling publisher

Практика:
ДЗ: Обеспечить согласованность данных. Провести отладку и финальный запуск проекта
Разработал архитектурный шаблон микросервиса с применением DDD в «СберМаркет»
Успешно реализовал ряд высоконагруженных систем для Мегафон, Теле2, БКС Брокер, СберМаркет
Спикер и автор курса — Кирилл Ветчинкин
Постоянный спикер крупных IT-конференций по разработке и Архитектуре ПО: ArchDays, Highload++, Podlodka, РИТ и др
ex Staff Engineer в «Купер»
15 лет
опыт разработки
5+ лет
опыт применения DDD
9000+ часов
практики на реальных проектах
Спикер и автор курса — Кирилл Ветчинкин
Разработал архитектурный шаблон микросервиса с применением DDD в «СберМаркет»
Успешно реализовал ряд высоконагруженных систем для Мегафон, Теле2, БКС Брокер, СберМаркет
Постоянный спикер крупных IT-конференций по разработке и Архитектуре ПО: ArchDays, Highload++, Podlodka, РИТ и др
ex Staff Engineer в «Купер»
6+
лет опыт применения DDD
15
года опыт программирования
9000+
часов практики на реальных проектах
Выберите подходящий тариф
Регистрация закроется через:
32 : 15 : 39 : 08
Дни
Часы
Минуты
Секунды
Физическим лицам
Юридическим лицам
Количество мест: неограниченно
Standard
  • Доступ к 12 блокам курса на 1 год
  • Чат с возможностью задавать вопросы
  • 6 живых эфира с вопросами и разборами домашек в Zoom
  • Сертификат об участии
  • Проверка всех домашних работ
  • Обзор кода сокурсников
  • Возможность сдать ДЗ в течение года
  • Дополнительные модули
  • 3 индивидуальных Q&A-сессии по 60 минут
  • 3 месяца персональной поддержки в чате с момента покупки
Продано
Продано
Осталось 0 мест
VIP
  • Доступ к 12 блокам курса на 1 год
  • Чат с возможностью задавать вопросы
  • 6 живых эфира с вопросами и разборами домашек в Zoom
  • Сертификат об участии
  • Проверка всех домашних работ
  • Обзор кода сокурсников
  • Возможность сдать ДЗ в течение года
  • Дополнительные модули
  • 3 индивидуальных Q&A-сессии по 60 минут
  • 3 месяца персональной поддержки в чате с момента покупки
Бонусы:
  • Структурные шаблоны проектирования
  • SOLID принципы программирования и разработки программного обеспечения
  • GRASP шаблоны проектирования
Бонусы:
  • Структурные шаблоны проектирования
  • SOLID принципы программирования и разработки программного обеспечения
  • GRASP шаблоны проектирования
Осталось < 8 мест
Premium
  • Доступ к 12 блокам курса на 1 год
  • Чат с возможностью задавать вопросы
  • 6 живых эфира с вопросами и разборами домашек в Zoom
  • Сертификат об участии
  • Проверка всех домашних работ
  • Обзор кода сокурсников
  • Возможность сдать ДЗ в течение года
  • Дополнительные модули
  • 3 индивидуальных Q&A-сессии по 60 минут
  • 3 месяца персональной поддержки в чате с момента покупки
до 27 августа
29 900 ₽
после 27 августа
35 000 ₽
до 27 августа
90 000 ₽
после 27 августа
100 000 ₽
до 27 августа
39 900 ₽
после 27 августа
45 000 ₽
Дни
Часы
Минуты
Секунды
VIP
  • Доступ к 12 блокам курса на 1 год
  • Чат с возможностью задавать вопросы
  • 6 живых эфира с вопросами и разборами домашек в Zoom
  • Сертификат об участии
  • Проверка всех домашних работ
  • Обзор кода сокурсников
  • Возможность сдать ДЗ в течение года
  • Дополнительные модули
  • 3 индивидуальных Q&A-сессии по 60 минут
  • 3 месяца персональной поддержки в чате с момента покупки
Standard
  • Доступ к 12 блокам курса на 1 год
  • Чат с возможностью задавать вопросы
  • 6 живых эфира с вопросами и разборами домашек в Zoom
  • Сертификат об участии
  • Проверка всех домашних работ
  • Обзор кода сокурсников
  • Возможность сдать ДЗ в течение года
  • Дополнительные модули
  • 3 индивидуальных Q&A-сессии по 60 минут
  • 3 месяца персональной поддержки в чате с момента покупки
Premium
Скидки на  юр. лиц
не  распространяются.

Это связано с  издержками на  документооборот — работа юристов, договор, акты.
45 000 ₽
Бонусы:
  • Структурные шаблоны проектирования
  • SOLID принципы программирования и разработки программного обеспечения
  • GRASP шаблоны проектирования
Бонусы:
  • Структурные шаблоны проектирования
  • SOLID принципы программирования и разработки программного обеспечения
  • GRASP шаблоны проектирования
  • Доступ к 12 блокам курса на 1 год
  • Чат с возможностью задавать вопросы
  • 6 живых эфира с вопросами и разборами домашек в Zoom
  • Сертификат об участии
  • Проверка всех домашних работ
  • Обзор кода сокурсников
  • Возможность сдать ДЗ в течение года
  • Дополнительные модули
  • 3 индивидуальных Q&A-сессии по 60 минут
  • 3 месяца персональной поддержки в чате с момента покупки
Скидки на  юр. лиц
не  распространяются.

Это связано с  издержками на  документооборот — работа юристов, договор, акты.
Продано
100 000 ₽
Скидки на  юр. лиц
не  распространяются.

Это связано с  издержками на  документооборот — работа юристов, договор, акты.
35 000 ₽
Компаниям: обучите своих сотрудников
Напишите нам, мы выставим вам счёт для оплаты, а после выдадим доступ к курсу:
Есть два формата:
1. В общей группе с другими учениками
2. Группы только из ваших сотрудников
info@microarch.ru
Получите мгновенный бесплатный доступ к демо-урокам
  • оцените актуальность и полезность тем курса для вас
  • узнаете как устроены уроки, какой объём информации даётся за одно занятие
Отвечаем на популярные вопросы
Начните бесплатно
Урок 1:
Анемичная доменная модель
  • Богатая доменная модель
  • Защита инвариантов
  • Улучшение тестируемости
  • Тактические паттерны DDD
Следующий урок:
Богатая доменная модель