Максим Аршинов
Компания: Хайтек Груп
Говоря о чистой архитектуре, Дядя Боб определяет Application Layer как уровень интеракторов, которые реализуют необходимое взаимодействие для выполнения запрошенной операции. Например, интерактор загружает сущность из базы, вызывает бизнес-операцию, меняющую состояние сущности, сохраняет новое состояние обратно в базу и отправляет сообщение в MessageBus. Как правило, этот уровень реализуют в виде набора классов-сервисов, поэтому его также иногда называют Service Layer.
Однако в последнее время все большую популярность набирает подход, который Джимми Богард назвал Vertical Slice Architecture. Когда для каждого юзкейса создается отдельный класс-хендлер, а не отдельный метод в ApplicationService. Джимми предлагает библиотеку MediatR, облегчающую реализацию Vertical Slices. MediatR набрал уже 85 млн скачиваний и используется в официальном Miсrosoft-сэмпле eShopOnWeb, который показывает, как разрабатывать современный бэкенд.
Обсудим подход Vertical Slices и библиотеку MediatR: какие у него достоинства и недостатки, а также какие он предоставляет возможности по сравнению с ApplicationServices.
Компания: Хайтек Груп
Компания: Dodo Engineering
Компания: Тинькофф, DevBrothers
Компания: DevBrothers