Джокер
Администратор
- Регистрация
- 1 Янв 2015
- Сообщения
- 145.841
- Реакции
- 78.175
Складчина: Domain Driven Design и Clean Architecture на языке Go [Тариф Standard] [Кирилл Ветчинкин]
После прохождения курса вы сможете:
Кодировать Aggregate, Value Object, Entity
Делать интеграции по gRPC, HTTP, Kafka
Правильно применять паттерн Repository и Adapter
Писать тесты, которые легко поддерживать
Обеспечивать согласованность событий
Выстраивать архитектуру приложения с нуля
Публиковать Domain Event и передавать их по Kafka
Обосновывать применение DDD в команде
Программа курса:
Clean Architecture
Научитесь определять ключевые слои приложения в соответствии с принципами Clean Architecture, разделяя логику, зависимости и ответственность.
Value Object
Научитесь различать анемичную и богатую Domain Model, а также поймёте, как правильно реализовывать Value Object для чистого и поддерживаемого кода.
Entity
Освоите реализацию тактического паттерна Entity, научитесь создавать сущности с четко определённой бизнес-логикой и инкапсулированными данными.
Aggregate
Научитесь управлять связанными объектами через единый корневой объект, правильно определять границы агрегатов и применять бизнес-логику в одном месте.
Domain Service
Создадите и внедрите Domain Service в доменный слой приложения, выделив бизнес-логику, которая не относится напрямую к сущностям или агрегатам.
Repository
Развернете БД в Docker. Реализуете паттерн Repository, настроите работу с базой данных через EF Migrations и создадите надёжный слой данных, покрытый интеграционными тестами.
Application Layer
Реализуете Use Case’ы приложения, применяя паттерны «Command» и «Mediator», а также следуя принципу CQS (Command Query Separation).
Входящий HTTP адаптер
Реализуете входящий HTTP Adapter, связав REST API с бизнес-логикой через Use Case, и получите работающий HTTP сервер, сгенерированный из контракта OpenAPI.
Исходящий Grpc адаптер
Реализуете исходящий gRPC Adapter, создавая его по принципам портов и адаптеров в Clean Architecture, и освоите базовую настройку gRPC клиента с использованием Protobuf.
Входящий Kafka адаптер
Поднимите Kafka в Docker. Реализуете на основе контракта входящий Kafka-адаптер в соответствии с Clean Architecture, настроите его взаимодействие с Use Case.
Исходящий Kafka адаптер
Cоздадите исходящий Kafka-адаптер, научившись отправлять Domain Events и преобразовывать их в Integration Events для внешних систем.
Eventual Consistency
Реализуете паттерны Outbox и Polling Publisher. Создадите устойчивую к сбоям интеграцию с Kafka, обеспечивающую согласованность данных в распределённой системе.
Тариф Standard
Доступ к 12 блокам курса на 1 год
Чат с возможностью задавать вопросы
6 живых эфира с вопросами и разборами домашек в Zoom
Сертификат об участии
Цена 29990 руб.
СКАЧАТЬ СЛИВЫ КУРСОВ
После прохождения курса вы сможете:
Кодировать Aggregate, Value Object, Entity
Делать интеграции по gRPC, HTTP, Kafka
Правильно применять паттерн Repository и Adapter
Писать тесты, которые легко поддерживать
Обеспечивать согласованность событий
Выстраивать архитектуру приложения с нуля
Публиковать Domain Event и передавать их по Kafka
Обосновывать применение DDD в команде
Программа курса:
Clean Architecture
Научитесь определять ключевые слои приложения в соответствии с принципами Clean Architecture, разделяя логику, зависимости и ответственность.
Value Object
Научитесь различать анемичную и богатую Domain Model, а также поймёте, как правильно реализовывать Value Object для чистого и поддерживаемого кода.
Entity
Освоите реализацию тактического паттерна Entity, научитесь создавать сущности с четко определённой бизнес-логикой и инкапсулированными данными.
Aggregate
Научитесь управлять связанными объектами через единый корневой объект, правильно определять границы агрегатов и применять бизнес-логику в одном месте.
Domain Service
Создадите и внедрите Domain Service в доменный слой приложения, выделив бизнес-логику, которая не относится напрямую к сущностям или агрегатам.
Repository
Развернете БД в Docker. Реализуете паттерн Repository, настроите работу с базой данных через EF Migrations и создадите надёжный слой данных, покрытый интеграционными тестами.
Application Layer
Реализуете Use Case’ы приложения, применяя паттерны «Command» и «Mediator», а также следуя принципу CQS (Command Query Separation).
Входящий HTTP адаптер
Реализуете входящий HTTP Adapter, связав REST API с бизнес-логикой через Use Case, и получите работающий HTTP сервер, сгенерированный из контракта OpenAPI.
Исходящий Grpc адаптер
Реализуете исходящий gRPC Adapter, создавая его по принципам портов и адаптеров в Clean Architecture, и освоите базовую настройку gRPC клиента с использованием Protobuf.
Входящий Kafka адаптер
Поднимите Kafka в Docker. Реализуете на основе контракта входящий Kafka-адаптер в соответствии с Clean Architecture, настроите его взаимодействие с Use Case.
Исходящий Kafka адаптер
Cоздадите исходящий Kafka-адаптер, научившись отправлять Domain Events и преобразовывать их в Integration Events для внешних систем.
Eventual Consistency
Реализуете паттерны Outbox и Polling Publisher. Создадите устойчивую к сбоям интеграцию с Kafka, обеспечивающую согласованность данных в распределённой системе.
Тариф Standard
Доступ к 12 блокам курса на 1 год
Чат с возможностью задавать вопросы
6 живых эфира с вопросами и разборами домашек в Zoom
Сертификат об участии
Цена 29990 руб.
СКАЧАТЬ СЛИВЫ КУРСОВ
Для возможности скачивать складчины и сливы курсов нужно зарегистрироваться
Возможно, Вас ещё заинтересует:
- Новая версия. Измени себя, не изменяя себе [Андрей Дороничев]
- Нежный паштет: домашние рецепты [Андрей Попов]
- Вау моти [Тариф Вау моти] [Ze.firka] [Алена Зефирка]
- Ультраобучение. Интенсивная и автономная стратегия освоения сложных навыков [Николай Сорокин]
- Физиогномика судьбы. Блок 1 (2025) [Тариф Базовый] [Люмос 22] [Татьяна Панюшкина]
- Физиогномика судьбы. Блок 2 (2025) [Тариф Базовый] [Люмос 22] [Татьяна Панюшкина]
- Физиогномика судьбы. Блок 3 (2025) [Тариф Продвинутый] [Люмос 22] [Татьяна Панюшкина]
- Что в твоей власти. Перестань тратить силы на то, чего не изменишь [Виктор Кросс]
- [ДМК] Паттерны React. Разработка эффективных и масштабируемых приложений [Набенду Бисвас]
- Как оптимизировать процессы и вовлечь персонал в процесс совершенствования с ИИ [Ольга Баркова]