Как стать автором
Обновить

Комментарии 10

Он гласит, что метод должен быть либо командой, выполняющей какое-то действие, либо запросом, возвращающим данные, но не одновременно и тем, и другим.
— автор явно не понимает отличие CQS и CQRS.
У CQS и CQRS, разумеется, есть различия. При этом они крайне схожи между собой. И там, и там есть разделение на выполнение команд без запроса данных и выполнение запросов без модификации состояния. При этом разница в том, что в CQS разделение находится внутри типа, а в CQRS команды и запросы выполняются в рамках разных объектов.
автор явно не понимает отличие CQS и CQRS

А можете рассказать об этом поподробнее, а то википедия тоже не понимает.


UPD: пока писал вопрос, приехал ответ. Как оказалось, отличие меньше, чем я думал. (А если все методы — это объекты, то и совсем нет)

На самом деле, я бы не стал полностью доверять Википедии. Есть официальный источник, в котором это различие описано. Третий пункт сверху.
С каких это пор cqrs.nu стал официальным источником? Где об этом говорит Грег Янг?
Ради интереса переключите википедию на английский язык в этой статье и поймете в чем ошибка. Не стоит верить рускоязычным источникам.
Command query responsibility segregation (CQRS) applies the CQS principle by using separate Query and Command objects to retrieve and modify data, respectively.
То есть отличается как «машина» от «транспортное средство».
Пример неплох. CQS это действительно фундаментальное «транспортное средство», он применим к почти любым приложениям. CQRS же «машина», которая едет только по определенным дорогам и не пройдет по болотам и лесам. Очень советую посмотреть доклады и видео Greg Young и Udi Dahan по теме.

Справедливости ради, CQRS и ES ортогональны друг другу, не нуждаются друг в друге.


А описывается вообще обычная работса с асинхронными запросами, не важно что там у сервера под капотом, хоть баш-скрипты.

НЛО прилетело и опубликовало эту надпись здесь
Зарегистрируйтесь на Хабре, чтобы оставить комментарий