CQRS - чтение модели DTO путаницы - PullRequest
3 голосов
/ 21 декабря 2010

Я читал о CQRS и считаю, что многие принципы ценны.Тем не менее, у меня есть одно главное утверждение.Многие люди говорят о том, что запросы чтения модели отображаются непосредственно для просмотра модели dtos.Все идет нормально.Однако, откуда я постоянно слышу «одну таблицу или один выбор на представление»?Конечно, некоторые экраны отображаются очень легко.Но я обычно работаю с некоторыми сложными экранами, которые включают несколько вариантов выбора для таких вещей, как справочные данные в выпадающих списках, виджеты и т. Д.два.

Как вы можете избежать этого, кроме работы с идеальными сценариями мира, где ваши взгляды просты и плоски?

Ответы [ 4 ]

5 голосов
/ 21 декабря 2010

Но я обычно работаю с некоторыми сложными экранами, которые включают несколько вариантов выбора для таких вещей, как справочные данные в выпадающих списках, виджеты и т. Д. *

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

2 голосов
/ 21 декабря 2010

Ответом является вопрос: «Достаточно ли я денормализовал свои взгляды? Могу ли я заранее рассчитать больше? Могу ли я лучше представить эту информацию, чтобы требовались меньшие запросы?»

Стремиться к «1 просмотру == 1запрос ".И как утверждает qstarin, смотрите! = Screen.

1 голос
/ 22 декабря 2010

В сценариях, с которыми я работал, мы используем кэш представлений, чтобы быть предварительно рассчитанным представлением объекта, который мы хотим визуализировать. Даже если события (мы используем EDA) происходят из разных доменов, у нас есть обработчики, которые поддерживают кэши представлений, чтобы мы могли иметь информацию, которую хотим отображать, в состоянии, подходящем для составного интерфейса пользователя. Цель, к которой мы стремимся, состоит в том, чтобы «select *» или «select * where ID =» были единственной формой запроса к кешу представления. На некоторых страницах отображается несколько DTO, но нам не нужно присоединяться к ним. Если мы чувствуем необходимость присоединиться, мы делаем это на этапе предварительного расчета, когда обрабатываем сообщения, содержащие информацию, которую мы хотим сохранить в кэше представления.

0 голосов
/ 31 декабря 2010

Вы можете избежать этого, используя Денормализация .Вы должны сделать все ваши сложные данные, чтобы быть плоскими представлениями (без объединений).Также посмотрите на Первая нормальная форма (1NF или минимальная форма) .

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

...