Имеет ли смысл передавать только некоторые данные в пользовательский интерфейс, думая о DDD? - PullRequest
2 голосов
/ 29 августа 2011

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

Я думаю, что для прикладного уровня вполне нормально предоставить уровню представления только те кусочки, которые ему нужны для создания.пользовательский интерфейс.Другими словами, когда ученики отвечают на вопросы, прикладной уровень не представляет других учеников на уровне представления.

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

ИМХО, это соответствует описанию прикладного уровня Э. Эванса: Определяет задания, для которых предполагается программное обеспечениеделать и направлять выразительные доменные объекты для решения проблем.

1 Ответ

0 голосов
/ 29 августа 2011

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

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

Вам также может быть интересно это сообщение в блоге о шаблоне хранилища от Szymon Pobiega - оно также следует идее разделения стороны записи (домена) и чтения (запросов) .

...