Как система Domain Driven Design обрабатывает отчеты?

Я обнаружил, что DDD естественен, если я работаю над операционным/транзакционным приложением. Однако я всегда застреваю в разумном способе обработки функций типа отчетности.

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

Для таких функций вполне естественно, если мы можем выполнить объединение в SQL (или любом другом языке запросов ), получить интересующие нас столбцы и вернуть набор результатов. Тем не менее, кажется, что этот путь не так уж хорош с DDD :, нам нужен дополнительный специальный репозиторий или существующий наиболее -связанный репозиторий, возвращающий специальный «объект сущности/значения» (, который является специализированным набором результатов ).. На самом деле такие специальные «сущности» не имеют никакого доменного значения.

Если мы хотим использовать осмысленный уровень домена, это может привести к большому количеству дополнительных поисков из другого репозитория, а также к большому объему агрегации на уровне домена или сервиса, что легко приведет к ужасному снижению производительности.

Я также подумал о том, чтобы иметь другой «путь» для такого рода функций, который не проходит через «путь DDD», имея свой собственный способ получения данных отчета из БД, составления результатов для отображения. Однако это сделает приложение излишне сложным и, что еще хуже,мы предоставили дополнительный путь, чтобы разработчики, более привыкшие к традиционной разработке, ориентированной на БД -, могли склоняться к использованию этого пути, даже если он не подходит.

Я думал, что такая ситуация довольно распространена (обычно большая система не содержит операционных функций, но также содержит функции отчетности и опроса ), я хотел бы знать, как люди справляются с этим?

21
задан Adrian Shum 19 July 2012 в 06:17
поделиться