Я знаю, что этот вопрос был рассмотрен несколько раз, но я не могу найти ответ, который наилучшим образом соответствует моему сценарию.Устранение проблем с производительностью с ассоциациями DDD
В настоящее время я борется за создание ассоциаций между сущностями в подходе DDD, имея представление в виду. Предположим, что мы имеем объект en Article
с атрибутом Author
как атрибут. Этот же Author
имеет объект Mail
как атрибут, который в моем проекте является объектом значения (он может быть регулярным атрибутом, но это только для примера). Оба объекта Article
и Author
являются AR.
Скажем, я хочу отобразить список статей для данного автора. Для каждой статьи я хочу только отображать имя автора в каком-то заголовке. На данный момент, допустим, у меня есть метод «findByAuthor», реализованный в ArticleRepository
.
Этот метод при вызове возвращает список объектов Article
со своим соответствующим объектом Author
. Этого было бы достаточно, поскольку мне нужно только имя автора, который является простым атрибутом объекта Author
. Мне не нужен объект Mail
.
В простом приложении с небольшим учетом производительности это было бы полностью нормально, но давайте представим, что мой домен находится на удаленном приложении, доступном через REST API. Транспортировка списка AR со всеми их ассоциациями кажется огромным производителем, когда мне нужна небольшая часть этих ассоциаций.
Как я могу решить эту проблему без рассмотрения обходных решений, таких как lazy-loading?
Разве вы не смешиваете CQRS с «малым агрегатом» здесь? Модель чтения CQRS не является Агрегированным корнем и сущностью. – guillaume31
CQRS - это всего лишь шаблон, его можно представить чем угодно, и поскольку мы используем DDD, тогда моя модель запроса будет использовать отдельный небольшой агрегат только для чтения. –
Однако новички могут вводить в заблуждение, чтобы описать модель * read * в агрегированных терминах, так как все характеристики, традиционно связанные с агрегированием (инвариантное принуждение, трансазиатская граница и т. Д.), Как правило, имеют смысл только в отношении * записи * стороны вещи. – guillaume31