💻 Программирование [Кирилл Ветчинкин] Domain Driven Design и Clean Architecture на языке Go (2024)

  • ОФОРМИТЬ ПОДПИСКУ

Calvin Candie

Вечный

Calvin Candie

Вечный
2 Сен 2018
47,650
5,101
Автор: Кирилл Ветчинкин
Название: Domain Driven Design и Clean Architecture на языке Go (2024)

1780923582132.png

За 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 гарантию доставки
Подробнее:
Скрытое содержимое доступно для зарегистрированных пользователей!

Скачать:
 

Похожие темы