За 6 недель вы научитесь строить микросервисы на Go по принципам Domain-Driven Design и Clean Architecture. Курс сочетает теорию и практику: 80% занятий — программирование и работа над реальным проектом.
Программа курса:
Уроки:
- Запись вебинара 1
- Запись вебинара 2
Модуль 1. Clean Architecture — Архитектура приложения
- Рассмотреть Layered/Onion/Clean/Hexagonal Architecture и понять разницу
- Задать структуру слоев микросервиса Basket
Модуль 2. Value Object
- Изучить подходы к реализации бизнес-логики
- Разобраться, что такое Domain Model и критерии ее применения
- Понять, что не все Domain Model «честные»
- Ознакомиться с Domain Model микросервиса Basket
- Изучить паттерн Value Object
Модуль 3. Entity
- Изучить тактический паттерн Entity
- Доработать Domain Model микросервиса Basket
Модуль 4. Aggregate
- Разобраться, что такое Domain Service и когда его применять
- Изучить основные характеристики Domain Service
- Понять отличие Domain Service o Application Service
- Разобраться, как не скатиться в Anemic Domain Model из-за чрезмерного применения Domain Service
- Доработать микросервис Basket
Модуль 5. Domain Service
- Разобраться, что такое Domain Service и когда его применять
- Изучить основные характеристики Domain Service
- Понять отличие Domain Service o Application Service
- Разобраться, как не скатиться в Anemic Domain Model из-за чрезмерного применения Domain Service
- Доработать микросервис Basket
Модуль 6. Repository
- Разобраться как сохранять и восстанавливать доменные объекты
- Изучить паттерн Repository
- Изучить паттерн Unit Of Work
- Научится тестировать Repository
- Доработать микросервис Basket
Модуль 7. Application Layer
- Разобраться, что такое Use Case
- Понять зону ответственности Application Layer
- Рассмотреть способы реализации Application Layer
- Изучить подход с применением Mediator
- Разобраться, что такое Command Query Separation (CQS)
- Доработать микросервис Basket
- Научится тестировать Application Layer
Модуль 8. Sync Input Adapters
- Изучить входящие Adapters на примере НТТР АРІ
- Понять их связь с Application Layer
- Доработать микросервис Basket
- Научится тестировать UI (API) Layer
Модуль 9. Sync Output Adapters
- Изучить синхронные исходящие Adapters на примере gRPC
- Понять из какого слоя делать синхронные обращения к внешним системам
- Познакомиться с gRPC и Protobuf
- Доработать микросервис Basket
Модуль 10. Async Input Adapters
- Изучить Input Adapters для асинхронного взаимодействия на примере Kafka
- Понять их связь с Application Layer
- Доработать микросервис Basket, добавить в него Kafka Consumer
Модуль 11. Async Output Adapters
- Изучить тактический паттерн DDD — Domain Event
- Понять отличие между Domain Event и Integration Event
- Изучить Output Adapters для асинхронного взаимодействия на примере Kafka
- Понять, как и из какого слоя отправлять сообщения в Message
- Broker
- Доработать микросервис Basket, добавить в него Kafka Producer
Модуль 12. Eventual Consistency
- Разобраться, какие бывают гарантии доставки и какая из них лучше всего подходит для нашей системы
- Понять недостатки текущей реализации публикации Domain Event
- Изучить паттерн Outbox
- Доработать микросервис Basket, реализовать в нем At-least Once гарантию доставки





