Поделиться через


Решение сложности бизнеса в микрослужбе с использованием шаблонов DDD и CQRS

Подсказка

Это фрагмент из электронной книги «Архитектура микрослужб .NET для контейнеризованных приложений .NET», доступной в документации .NET или в виде бесплатного скачиваемого PDF-файла, который можно прочитать в автономном режиме.

Архитектура микросервисов .NET для приложений .NET в контейнерах, миниатюра обложки электронной книги.

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

В этом разделе рассматриваются более сложные микрослужбы, которые реализуются при необходимости решать сложные подсистемы или микрослужбы, производные от знаний экспертов области с постоянно изменяющимися бизнес-правилами. Шаблоны архитектуры, используемые в этом разделе, основаны на подходах к сегрегации на основе домена (DDD) и команд и запросов (CQRS), как показано на рис. 7-1.

Схема сравнения шаблонов внешней и внутренней архитектуры.

Разница между внешней архитектурой: шаблоны микрослужб, шлюзы API, устойчивые связи, pub/sub и т. д., а также внутренняя архитектура: управляемые данными/CRUD, шаблоны DDD, внедрение зависимостей, несколько библиотек и т. д.

Рис. 7-1. Архитектура внешних микрослужб и внутренние шаблоны архитектуры для каждой микрослужбы

Однако большинство методов для управляемых данными микрослужб, таких как реализация службы веб-API ASP.NET Core или предоставление метаданных Swagger с помощью Swashbuckle или NSwag, также применимы к более сложным микрослужбам, реализованным внутри с помощью шаблонов DDD. Этот раздел является расширением предыдущих разделов, так как большинство методик, описанных ранее, также применяются здесь или для любой микрослужбы.

В этом разделе сначала приводятся сведения о упрощенных шаблонах CQRS, используемых в справочном приложении eShopOnContainers. Позже вы получите общие сведения о методах DDD, позволяющих найти распространенные шаблоны, которые можно использовать повторно в приложениях.

DDD — это большая тема с богатым набором ресурсов для обучения. Вы можете начать с таких книг, как книга по Domain-Driven Дизайну Эрика Эванса, и дополнительных материалов от Вона Вернона, Джимми Нилссона, Грега Янга, Уди Дахана, Джимми Богарда и многих других экспертов по DDD/CQRS. Но больше всего вам нужно постараться научиться применять методы DDD из бесед, визуализации на доске и занятий по моделированию домена с экспертами в вашей конкретной бизнес-области.

Дополнительные ресурсы

DDD (Domain-Driven Design)
Книги DDD
Обучение DDD