如何识别一个项目是否使用了 CQS 或 CQRS? CQS 和 CQRS 有什么区别?

How to identify if a project has used CQS OR CQRS? What is the difference between CQS and CQRS?

这个问题听起来我可能很傻,但我真的很困惑。创建 command、query、commandhanlder、queryhandler 和 repositories 并使用依赖注入来解析基于 query 和 command 的 queryhandlers 和 commandhandlers 是否分别符合 cqs 或 cqrs?

或者将任务并行库用于命令和查询处理程序符合 cqrs 而不是 cqs?

或者是否真的基于Use Case是否存在协作域的场景-->多个用户试图访问有限的数据。

CQRS 是一种架构模式。对我来说,CQS 更像是一个 class 设计原则。

CQS 说你的命令方法不应该 return 任何东西(无效)并且只改变对象状态。查询方法应该 return 结果和查询方法调用应该是不可变的,查询方法不会改变对象状态。就是这个。

CQRS 是 "splitting a model object into two"。您将有一个模型要编写,一个模型要读取,它们是完全独立的。您可能将数据存储在同一个数据库中,但是使用命令写入的位置与使用查询读取的位置分开,它们使用不同的模型(写入和读取)。