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

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

Разработаете сервис с применением DDD и Clean Architecture
Реальный кейс
Научитесь разбивать приложение на слои, кодировать Domain Model
Добавите в свое портфолио проект, которым можно гордиться
Создадите сервис, который легко адаптировать под ваши задачи
Кирилл Ветчинкин
Автор курса, опыт применения DDD с 2019 года. Действующий архитектор Авито. Ex Staff Engener "Купер".
Портфолио
Практика
Шаблон
Онлайн
Старт 15 января
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: 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: Хранение в БД
ДЗ: Реализовать Value Object “Location” в соответствии с бизнес-правилами
Содержание
Практика
Урок 1: Реализация паттерна Aggregate (агрегат)
Урок 2: Строгая согласованность
Урок 3: Ловушка «Реального мира»
Урок 4: Размер агрегата
ДЗ: Реализовать Aggregate «Courier» в соответствии с бизнес-правилами
Содержание
Практика
Урок 1: Реализация паттерна Domain Service (сервис предметной области)
Урок 2: Смысл и назначение
Урок 3: Отличие от Application Service
Урок 4: Популярные ошибки реализации
ДЗ: Реализовать в Domain Service алгоритм диспетчеризации заказов
Содержание
Практика
Урок 1: Создание БД с помощью 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 из контракта
ДЗ: Реализовать все Use Case приложения, применить CQS
Содержание
Практика
Урок 1: Знакомство с gRPC и Protobuf
Урок 2: Генерация gRPC Client из контракта
Урок 3: Из какого слоя делать внешние вызовы
Урок 4: Пример реализации порта и gRPC адаптера
ДЗ: Реализовать исходящий адаптер. Сгенерировать gRPC Client из Protobuf
Содержание
Практика
Урок 1: Знакомство с kafka и Protobuf
Урок 2: Генерация Integration Event из контракта
Урок 3: В каком слое обрабатывать сообщения Kafka
Урок 4: Создание Kafka адаптера (consumer)
ДЗ: Реализовать входящий адаптер. Сгенерировать Integration Event из Protobuf
Содержание
Практика
Урок 1: Реализация паттерна Domain Event (событие предметной области)
Урок 2: Отличия Domain Events и Integration Events
Урок 3: Где порождать Domain Events
Урок 4: Создание Kafka адаптера (producer)
ДЗ: Реализовать Domain Event и исходящий адаптер. Сгенерировать Integration Event из Protobuf
Содержание
Практика
Урок 1: Разновидности гарантий доставки
Урок 2: Обеспечение согласованности в распределенных системах
Урок 3: Реализация паттерна Outbox
Урок 4: Реализация паттерна Polling publisher
ДЗ: Обеспечить согласованность данных. Провести отладку и финальный запуск проекта
ex Staff Engineer в «Купер», ex Head of Backend в «БКС Брокер»
Разработал архитектурный шаблон микросервиса с применением DDD в «СберМаркет»
Спикер и автор курса — Кирилл Ветчинкин
Постоянный спикер крупных IT-конференций по разработке и Архитектуре ПО: ArchDays, Highload++, Podlodka, РИТ
Действующий архитектор в «Авито»
15 лет
опыт разработки
6+ лет
опыт применения DDD
9000+ часов
практики на реальных проектах
Спикер и автор курса — Кирилл Ветчинкин
ex Staff Engineer в «Купер», ex Head of Backend в «БКС Брокер»
Разработал архитектурный шаблон микросервиса с применением DDD в «СберМаркет»
Постоянный спикер крупных IT-конференций по разработке и Архитектуре ПО: ArchDays, Highload++, Podlodka, РИТ
Действующий архитектор в «Авито»
6+
лет опыт применения DDD
15
года опыт программирования
9000+
часов практики на реальных проектах
Выберите подходящий тариф
До повышения цены осталось:
32 : 15 : 39 : 08
Дни
Часы
Минуты
Секунды
Физическим лицам
Юридическим лицам
❗ Можно начать сегодня — доступ открывается сразу
Самостоятельный
  • Моментальный доступ к курсу сразу после оплаты
  • 1 год доступа к материалам курса
  • Поддержка в общем чате — можно задавать вопросы по материалу
  • Без проверки домашних заданий❗
  • Сертификат об участии
  • Доступ в закрытый Telegram канал всех групп
Продано
Осталось 0 мест
Персональный
  • Участие в потоке (старт 15 января)
  • 1 год доступа к материалам курса
  • Поддержка в чате группы — можно задавать вопросы по материалу
  • Проверка всех домашних заданий экспертом
  • Сертификат об участии
  • Доступ в закрытый Telegram канал всех групп
  • 3 персональных консультации по 60 минут
  • Возможность обсудить свой кейс с экспертом
Бонусы:
  • Структурные шаблоны проектирования
  • SOLID принципы программирования и разработки программного обеспечения
  • GRASP шаблоны проектирования
Бонусы:
  • Структурные шаблоны проектирования
  • SOLID принципы программирования и разработки программного обеспечения
  • GRASP шаблоны проектирования
до 11 декабря
34 900 ₽
после 11 декабря
36 900 ₽
до 11 декабря
70 000 ₽
после 11 декабря
80 000 ₽
до 11 декабря
39 900 ₽
после 11 декабря
41 900 ₽
Осталось < 7 мест
В группе
  • Участие в потоке (старт 15 января)
  • 1 год доступа к материалам курса
  • Поддержка в чате группы — можно задавать вопросы по материалу
  • Проверка всех домашних заданий экспертом
  • Сертификат об участии
  • Доступ в закрытый Telegram канал всех групп
Дни
Часы
Минуты
Секунды
Персональный
  • Участие в потоке (старт 15 января)
  • 1 год доступа к материалам курса
  • Поддержка в чате группы — можно задавать вопросы по материалу
  • Проверка всех домашних заданий экспертом
  • Сертификат об участии
  • Доступ в закрытый Telegram канал всех групп
  • 3 персональных консультации по 60 минут
  • Возможность обсудить свой кейс с экспертом
Самостоятельный
  • Моментальный доступ к курсу сразу после оплаты
  • 1 год доступа к материалам курса
  • Поддержка в общем чате — можно задавать вопросы по материалу
  • Без проверки домашних заданий❗
  • Сертификат об участии
  • Доступ в закрытый Telegram канал всех групп
В группе
  • Участие в потоке (старт 15 января)
  • 1 год доступа к материалам курса
  • Поддержка в чате группы — можно задавать вопросы по материалу
  • Проверка всех домашних заданий экспертом
  • Сертификат об участии
  • Доступ в закрытый Telegram канал всех групп
Бонусы:
  • Структурные шаблоны проектирования
  • SOLID принципы программирования и разработки программного обеспечения
  • GRASP шаблоны проектирования
Скидки на  юр. лиц
не  распространяются.

Это связано с  издержками на  документооборот — работа юристов, договор, акты.
45 000 ₽
Бонусы:
  • Структурные шаблоны проектирования
  • SOLID принципы программирования и разработки программного обеспечения
  • GRASP шаблоны проектирования
Скидки на  юр. лиц
не  распространяются.

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

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

Легко могу себе представить, как применить этот концепт на практике в рабочем проекте.

Уже договорились опробовать на одном из сервисов.
Матвей (Java разработчик, Junior)
«Применимо на практике, преподаватель всегда был на связи»
Хороший курс, применимо на практике, преподаватель всегда был на связи в телеграмм канале, отвечал на вопросы на еженедельных встречах.

Была хорошая практика и удобно, что это было не 5 дней подряд, а еженедельными порциями.
Дмитрий (TechLead)
«Практики очень много. Все разжеванно до мельчайших подробностей»
Практики очень много.
Один из лучших которые я когда-либо проходил (а я проходил ~10 курсов).

Все разжеванно до мельчайших подробностей и понятно объясненно.
Очень доволен курсом, мне как раз не хватало этих знания для ассесмента.
Павел (Java разработчик, Middle+)
«Все объясняется доступным языком»
Очень интересный и полезный курс, информация применима в работе, все объясняется доступным языком.
Женя (Java разработчик, Senior)
«Тренер понятно объясняет материал и отвечает на все вопросы»
Пока успела посмотреть только частично, но уже видно что курс стоящий.

Тренер понятно объясняет материал и отвечает на все вопросы.
Ирина (Java разработчик, Middle+)
«Много полезной и практически применимой информации»
В курсе много полезной и практически применимой информации и в общем курс полезен.

Но есть немало лишней информации, не относящейся напрямую к теме, например, gRPC или OpenAPI.
Саша (Java разработчик, Junior)
Отвечаем на популярные вопросы
Начните бесплатно
Урок 1:
Анемичная доменная модель
  • Богатая доменная модель
  • Защита инвариантов
  • Улучшение тестируемости
  • Тактические патроны DDD
Следующий урок:
Богатая доменная модель