Основы CQRS
Комментарии (6)
18 июля 2017 в 10:58
0↑
↓
Кроме возврата значения, здесь также определено, что в случае валидного email сразу присваивать его значение (делаем Command) полю Email.
То есть достаточно назвать метод «TryChangeEmail», который пытается изменить email и возвращает статус изменения, и вашей проблемы с недопониманием что делает метод не будет. Разделение на 2 метода тут не требуется.
Еще важнее, что эти два уровня могут находиться даже в двух разных звеньях (tiers) и оптимизироваться раздельно, никак не затрагивая друг друга.
Командам как правило необходимо делать запросы в процессе работы. И какой толк в этом случае от разделения команд и запросов, если они всё равно получаются сильно связанными?
18 июля 2017 в 11:09 (комментарий был изменён)
0↑
↓
Запросы лучше делать не из команд, а из process-менеджеров. Для таких транзакций тут не хватает event sourcing.
18 июля 2017 в 11:53 (комментарий был изменён)
0↑
↓
Больше абстракций богу абстракций :-)
18 июля 2017 в 11:27
0↑
↓
Командам нужно делать в процессе работы запросы к базе, но эти запросы не будут буквой Q в CQRS.
18 июля 2017 в 11:51
0↑
↓
А смысл дублировать код запросов?
18 июля 2017 в 12:31 (комментарий был изменён)
0↑
↓
Вообще CQRS имеет смысл быть для высоко нагруженных систем.
Одна БД для записи информации, 4 БД для чтения информации. Иначе зачем делить логику, как мне кажется это методология или новомодное словечко вечно вырывается из контекста!
Хотелось бы узнать у Бертрана Мейера какое у него было железо !
https://ru.wikipedia.org/wiki/CQRS
На практике, CQRS дает возможность пропустить все проверки утверждений в действующей системе, чтобы повысить её производительность, не боясь того, что это изменит её поведение. CQRS также предотвращает возникновение некоторых гейзенбагов.
Как я и говорил для повышения производительности !