2

Я мог бы казаться глупым с этим вопросом, но я действительно смущен. Создает ли команду, запрос, командуандер, обработчик запросов и репозитории и использует инъекцию зависимостей для разрешения обработчиков запросов и команд-манипуляторов на основе запроса и команды, соответственно, в качестве cqs или cqrs?Как определить, использовался ли проект CQS OR CQRS? В чем разница между CQS и CQRS?

Или Использование задачи Параллельная библиотека для обработчиков команд и запросов квалифицируется как cqrs, чем cqs?

Или это действительно основано на Use Case, существует ли сценарий совместного домена -> Несколько пользователей, пытающихся получить доступ к ограниченным данным.

+0

Это совсем не глупый вопрос. Это очень распространенный вопрос, когда вы начинаете рассматривать шаблон CQRS. Я думаю, что ответ Алексея Зимарева хорошо объясняет на более высоком рычаге различия. – user707727

ответ

9

CQS говорит, что ваши методы команд не должны возвращать ничего (быть недействительными) и только мутировать состояние объекта. Методы запроса должны возвращать результаты, а вызовы метода запросов должны быть неизменными, метод запроса не изменяет состояние объекта. Это оно.

CQRS - это «разделение объекта модели на два». У вас будет одна модель для записи и одна модель для чтения, которые полностью разделены. Вы можете хранить свои данные в одной и той же базе данных, но там, где вы пишете, используя свои команды, отделяется от того, где вы читаете, используя ваши запросы, они используют разные модели (писать и читать).

2

CQRS - это архитектурный образец. Для меня CQS - это скорее принцип дизайна класса.