(精品)DDD&CQRS介绍-2013-04-12.pptx

上传人:hyn****60 文档编号:82695305 上传时间:2023-03-26 格式:PPTX 页数:55 大小:1.92MB
返回 下载 相关 举报
(精品)DDD&CQRS介绍-2013-04-12.pptx_第1页
第1页 / 共55页
(精品)DDD&CQRS介绍-2013-04-12.pptx_第2页
第2页 / 共55页
点击查看更多>>
资源描述

《(精品)DDD&CQRS介绍-2013-04-12.pptx》由会员分享,可在线阅读,更多相关《(精品)DDD&CQRS介绍-2013-04-12.pptx(55页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、DDD+CQRS介绍介绍拥抱幸福段光伟内容内容价值观DDDCQRS价值观价值观如何才能幸福如何才能幸福复杂性能应对复杂性幸福DDD什么是什么是DDD?DDD是一种以领域为核心的分析和设计理念,DDD通过维护一个深度反应领域概念的模型以及提供了可行的经过实践检验的大量模式来应对领域的复杂性。为什么选择为什么选择DDD?十年沉淀,被无数大师推崇和传播。概念提出之处就宣布拥抱敏捷,从其核心模式之一“通用语言”就可以略见一斑。成熟足以应对领域的复杂性,掌握之后,你的生活会更简单。敏捷简单认识认识DDD了解经典DDD架构风格学习DDD模式不得不学习的聚合设计领域逻辑的组织领域逻辑的封装(应用层)DDD经

2、典架构经典架构基础设施领域层应用层显示层数据库外部系统横切面箭箭头头代代表表依依赖赖关关系系层之间的依赖层之间的依赖领域层谁都不依赖。基础设施层依赖领域层和应用层(继承依赖)。应用层依赖领域层(调用依赖)。显示层依赖应用层和领域层(调用依赖)。分层示例分层示例分层示例分层示例分层示例分层示例依赖管理依赖管理DIPIOC依赖原则OSGI依赖创建依赖管理DDD模式模式分解相关的模式分解相关的模式分层分区分聚合迭代分解分解空间上的分解空间上的分解分层分区分聚合分解后如何交互分解后如何交互?服务客户APISPI继承继承调用调用基于消息的交互基于消息的交互时间上的分解时间上的分解迭代式开发聚合聚合聚合根

3、实体值对象聚合规则聚合规则只有聚合根可以被其它对象持有引用,聚合根内的实体和值对象只能被临时的使用。对聚合状态的修改必须要经过过聚合根,换句话说,必须要通知到聚合根。聚合是不求同生,但求同死的整体。聚合是持久化管理的最小单元。聚合是并发管理的最小单元。实体和值对象只能隶属一个聚合,采用享元模式除外。聚合的一些问题聚合的一些问题同一个聚合类型的两个聚合实例是“跨聚合”吗?(是)每个聚合的修改都要提交一次工作单元吗?(是)修改了几个聚合就要提交几次工作单吗?(是)聚合之间尽量通过标识进行关联吗?(是)聚合要尽量小吗?(是)聚合的生命周期聚合的生命周期被工作单元跟踪持久化在数据库中透明工厂.创建()

4、开始仓储.添加()工作单元.提交()聚合.修改()仓储.查询()聚合和事务聚合和事务一般一个请求对应一个业务事务,一个业务事务运行在一个分布式事务中(不一定),一个业务事务对应多个数据库事务(工作单元的提交),一个数据库事务最好只操作一个聚合。聚合四步诗聚合四步诗识别模型识别关联划分聚合精简关联识别模型识别模型用户角色识别关联识别关联用户角色分配了多个角色包含了多个用户划分聚合划分聚合用户角色分配了多个角色包含了多个用户精简关联精简关联用户角色分配了多个角色最终结果最终结果封装集合领域逻辑的组织领域逻辑的组织职责复复杂度度简单(涉及一个聚合)(涉及一个聚合)复复杂(涉及多个聚合)(涉及多个聚合

5、)创建建工厂方法或构造方法工厂类修改修改聚合方法领域服务查询聚合方法领域服务类型型职责仓储对如何管理聚合持久化相关生命周期的抽象。查询规约对持久化相关的查询条件的抽象,也叫查询对象。判断判断规约对领域中行为相关的前置条件和后置条件的抽象。创建建规约对领域中创建相关的前置条件和后置条件的抽象。代码示例代码示例1代码示例代码示例2代码示例代码示例3代码示例代码示例4代码示例代码示例5领域逻辑的封装领域逻辑的封装事务脚本请求/响应命令混合型代码示例代码示例1代码示例代码示例2代码示例代码示例3DDD拥抱的工具拥抱的工具DDDMore.Analysis PatternEnterprise Archit

6、ect PatternDesign PatternMetadata Driven ProgrammingEvent Driven ProgrammingReflectorOSGIIOCAOPCITDDCQRS什么是什么是CQRS?CQRS是Command Query Responsibility Segregation的简拼。CQRS建议将修改系统状态的模型和读取系统状态的模型给分开进行开发。为什么选择为什么选择CQRS?分解后的分解,职责更加清晰,更方便应对复杂性。CommandQuery认识认识CQRS了解经典CQRS架构风格容易误解的CQRS概念如何采用数据访问技术CQRS经典架构经典架

7、构基础设施领域层应用层显示层数据库外部系统横切面箭箭头头代代表表依依赖赖关关系系查询层容易产生的误解容易产生的误解CQRS必须采用EventSource吗?(否)CQRS必须采用In Memory吗?(否)CQRS必须采用DDD吗?(否)CQRS必须采用Command模式吗?(否)CQRS必须采用两个(读写)数据库吗?(否)数据访问技术数据访问技术Query(OLAP)SQLCommand(OLTP)Single OperationORMBatch OperationSQLORM In Background代码示例(读)代码示例(读)代码示例(写)代码示例(写)四色原型四色原型DCI家我丈夫公司丈夫结束结束谢谢大家博客地址:http:/

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 生活常识

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁