Ssylka

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

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

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

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

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


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

7576Фриланс и удаленка: оборотная сторона свободы 7575Асфальтовая жизнь: второе рождение дорожного покрытия 7574Как превратить старую футболку в новый биопластик и одежду? 7573Может ли эпидемия Эболы в мегаполисе перерасти в катастрофу? 7572Небесный танец: Венера и суперсерп Луны озаряют Колорадо 7571Скрытый свет энергии: новое окно в мир тёмных экситонов 7570Парадоксы зуда: почему расчёсывание лишь усугубляет аллергический дерматит 7569Могут ли грибы превращать пауков в зомби, обрекая их на мучительную смерть? 7568Марсианские пауки: загадка полярных гейзеров Красной планеты 7567Станет ли Глазго привлекательнее с введением туристического налога? 7566ИИ-голос: ElevenLabs наращивает инвестиции и расширяет функционал 7565Эволюция веб-дизайна: фокус на интерактивность и аутентичность 7564Смогут ли электрохимические ячейки стать холодильниками будущего? 7563Может ли квантовая магия обуздать хаос турбулентности? 7562Тёмная материя: квантовый взгляд на космос