知识卡片

命令与查询操作的四点差异

普通读书笔记卡 · 1976.t

内容

命令与查询有四点关注点差异:查询无副作用、幂等,命令改状态、新增操作若不加约束则不幂等;查询同步实时、往往阻塞式请求/响应,命令可异步、甚至不返回结果、可即发即忘;查询结果往往面向UI,命令只引起状态变更、无须呈现结果;查询频率远高于命令,但领域复杂度低于命令。差异如此之多,用一致方案无法应对不同请求,才需划分命令模型与查询模型。发散:这四点差异是CQRS的全部动机来源,逐条对照就能判断某场景值不值得拆模型。

参考来源

- 位置:《解构领域驱动设计》第18章《领域驱动设计的战略考量》18.3(源文件:_epub-src/OEBPS/031.xhtml) - 结论依据:原文逐条列出命令与查询在副作用/幂等、同步异步、是否面向UI、频率与复杂度上的四点差异,作为划分模型的依据。 - 原始内容:查询操作没有副作用,具有幂等性;命令操作会修改状态……查询操作的频率要远远高于命令操作,领域复杂度又要低于命令操作。