千家信息网

快速理解CQRS

发表于:2024-10-12 作者:千家信息网编辑
千家信息网最后更新 2024年10月12日,CQRS 意味着命令和查询的责任是分离的。很多人错误的认为CQRS是一个整体架构,其实,CQRS这个一个小的模式,这个模式由Greg Young和Udi Dahan首次提出. 他们从Bertrand
千家信息网最后更新 2024年10月12日快速理解CQRS

CQRS 意味着命令和查询的责任是分离的。很多人错误的认为CQRS是一个整体架构,其实,CQRS这个一个小的模式,这个模式由Greg YoungUdi Dahan首次提出. 他们从Bertrand Meyer的《Object Oriented Software Construction》中获取的命令和查询分离模式的灵感。在CQS背后的主要观点是:"一个方法应该改变一个对象的状态,或者返回一个结果,但不是二者兼具。换句话说,问一个问题不应该改变问题的答案,更正式的,一个方法只有被引用透明(referentially transparent)并且没有任何副作用的时候才会有返回一个值。

正因如此,我们把方法划分为两种:

  • Commands - 改变一个对象或整个系统的状态

  • Queries - 在不改变对象的状态的情况下返回结果

在现实中,可以很简单讲清楚什么是什么。Queries会声明返回类型,commands没有返回值. 这种模式是普遍适用的,它会让对象更加简单。换句话讲,CQRS只适用于解决特定问题.


很多应用程序使用主流读和写来构建对象的方法。对于同一个模型(model)用读和写会造成model更加复杂,维护和优化都非常困难。


这两种模式的真正策略是你可以将修改状态和不修改状态的方法分离开,这种分离可能造成在处理性能和调优时变得困难,你可以在写的部分来优化系统中被分开用做读的部分,写的部分是已知的领域,这个领域包含所有的行为,读的部分被指定为报表提供服务。


这种模式在一个很大的应用程序的另外的一个好处是,你可以将开发人员分配到更小的团队中去完成这个系统的不同任务(只完成读或写),而不用关心其他的任务。例如,开发读部分的人员不需要明白领域模型。




查看原文:Kanasz Robert

模式 对象 方法 状态 部分 系统 问题 领域 困难 人员 任务 命令 应用程序 模型 程序 结果 应用 开发 查询 不同 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 学软件开发需要学什么语言 华为服务器选择哪块盘作为热备盘 健康管理软件开发公司排名 vr 展示软件开发 大理网络安全产业园 无锡网络软件开发记录 触犯网络安全法通报 国内服务器合租 山西网络安全大赛决赛 聊城微信小程序软件开发系统 为什么网络无法连接到服务器电视 山西彬汇全景网络技术公司 常州海航软件开发售后服务 松江区创新软件开发厂家销售方法 全家互联网络科技 银行网络安全责任追究 服务器管理用什么软件 阳城北留电厂网络安全维护部 浙江正规软件开发特征 公共机房网络安全管理 tid2008数据库 连接服务器教程 石家庄学软件开发哪个学校好 纵横网络安全大赛规模 学网络技术找什么样的工作啊 广西友邦永信网络技术有限公司中标 重庆海涛软件开发公司 网络安全的目的与意义 如何删除数据库中的空值 FTP 服务器软件 http
0