Упрощенная архитектура домена: отказ от агрегатов в пользу сущностей

В сложных системах часто возникают споры о выборе между богатой и анемичной моделями предметной области. Первая обеспечивает инкапсуляцию и структурирование, но может быть громоздкой. Вторая — проста для понимания, но порождает хаос и дублирование бизнес-логики. Проблема заключается в определении границ агрегатов, которые часто не могут вместить в себя все проверки. Это приводит к дублированию кода и усложнению логики.
Упрощенная архитектура домена: отказ от агрегатов в пользу сущностей
Изображение носит иллюстративный характер

Отказ от агрегатов, при этом сохраняя богатую модель, позволяет сущностям обращаться к другим сущностям напрямую через репозитории. Репозитории становятся коллекциями сущностей в оперативной памяти, а не абстракциями над хранилищем данных. Это позволяет избавиться от транзакций на уровне модели, так как все проверки выполняются в памяти. Логика координации между сущностями обеспечивается делегатами или событиями, что позволяет соблюсти инкапсуляцию.

В результате убираются сервисы, отвечающие за координацию состояний сущностей, остаются только сервисы, выполняющие действия, не относящиеся к конкретной сущности. Репозиторий заполняет свои коллекции данными в момент запроса. Уровень приложения отвечает за загрузку данных из базы данных.

В итоге, архитектура становится проще, поскольку нет необходимости в сложных взаимодействиях между агрегатами. Репозитории становятся простыми и легкими, так как больше не нужно анализировать сложные связи. Сущности самостоятельно управляют своим состоянием, что делает код более понятным.


Новое на сайте

19857Острова как политический побег: от Атлантиды до плавучих государств Питера Тиля 19856Яйца, которые спасли предков млекопитающих от худшего апокалипсиса на Земле? 19855Могут ли омары чувствовать боль, и почему учёные требуют запретить варить их живыми? 19854Премия в $3 млн за первое CRISPR-лечение серповидноклеточной анемии 19853Почему сотрудники игнорируют корпоративное обучение и как это исправить 19852Тинтагель: место силы Артура или красивая легенда? 19851Голоса в голове сказали правду: что происходит, когда галлюцинации ставят диагноз точнее... 19850Куда исчезает информация из чёрных дыр, если они вообще исчезают? 19849Чёрная дыра лебедь Х-1 бросает джеты со скоростью света — но кто ими управляет? 19848Что увидели фотографы над замком Линдисфарн — и почему они закричали? 19847Почему антисептики в больницах могут создавать устойчивых к ним микробов? 19846Правда ли, что курица может жить без головы? 19845Как Оскар Уайльд использовал причёску как оружие против викторианской морали? 19844Назальный спрей против всех вирусов: как далеко зашла наука 19843«Я ещё не осознал, что мы только что сделали»: первая пресс-конференция экипажа Artemis II
Ссылка