首页>会议文档 >

中兴 张晓龙 - DDD分层架构的三种模式

page:
中兴 张晓龙 - DDD分层架构的三种模式
中兴 张晓龙 - DDD分层架构的三种模式
中兴 张晓龙 - DDD分层架构的三种模式
中兴 张晓龙 - DDD分层架构的三种模式
中兴 张晓龙 - DDD分层架构的三种模式
中兴 张晓龙 - DDD分层架构的三种模式
中兴 张晓龙 - DDD分层架构的三种模式
中兴 张晓龙 - DDD分层架构的三种模式
中兴 张晓龙 - DDD分层架构的三种模式
中兴 张晓龙 - DDD分层架构的三种模式
中兴 张晓龙 - DDD分层架构的三种模式
中兴 张晓龙 - DDD分层架构的三种模式
中兴 张晓龙 - DDD分层架构的三种模式
中兴 张晓龙 - DDD分层架构的三种模式
中兴 张晓龙 - DDD分层架构的三种模式
中兴 张晓龙 - DDD分层架构的三种模式
中兴 张晓龙 - DDD分层架构的三种模式
中兴 张晓龙 - DDD分层架构的三种模式
中兴 张晓龙 - DDD分层架构的三种模式
中兴 张晓龙 - DDD分层架构的三种模式
中兴 张晓龙 - DDD分层架构的三种模式
中兴 张晓龙 - DDD分层架构的三种模式
中兴 张晓龙 - DDD分层架构的三种模式
中兴 张晓龙 - DDD分层架构的三种模式
中兴 张晓龙 - DDD分层架构的三种模式
中兴 张晓龙 - DDD分层架构的三种模式
中兴 张晓龙 - DDD分层架构的三种模式
中兴 张晓龙 - DDD分层架构的三种模式
中兴 张晓龙 - DDD分层架构的三种模式
中兴 张晓龙 - DDD分层架构的三种模式
中兴 张晓龙 - DDD分层架构的三种模式

中兴 张晓龙 - DDD分层架构的三种模式

所属会议:领域驱动设计中国峰会 2017会议地点:北京


下载

手机看
活动家APP客户端

扫二维码下载
或点击下载
Android iOS

9352次
浏览次数
领域驱动设计中国峰会 2017所有文档 林炜翔 - DDD with functional programming paradiagm 吴雪峰 - 当函数式遇上DDD 中电六所 胡戎 - 领域驱动的FRP复合范式在复杂前端应用的实践 ThoughtWorks 肖然 - 为不确定性架构 微软 董乃文 - 领域驱动设计(DDD)与微服务之模式与实践 金新明 - Model Based Architecture Design 潘加宇 - 复杂领域模型的建模 滕云 - DDD没那么难 张群晖 - 领域驱动盒马实践 ThoughtWorks 李新 - 你的领域架构落地了吗 畅捷通 刘学斌 - DDD在微服务架构企业云产品中的实践 黄邦伟 - 基于Domain、Use Case与Aspect思维的端到端可变化设计 寇宇 - 微服务的设计思考 千岛源 张建锋 - 微服务架构下CDI在领域驱动设计中的精妙应用 张逸 - 限界上下文的实践意义 点融 黄晓辉 - 团队技术进阶之路 衡睿教育 周雪峰 - 领域驱动设计与Scrum项目管理 泰然城 付银海 - 领域驱动组织治理 中兴 丁辉 - DDD中的康威定律 ThoughtWorks 亢江妹&周宇刚 - DDD落地之BA和架构师的完美结对_部分1 ThoughtWorks 亢江妹&周宇刚 - DDD落地之BA和架构师的完美结对_部分2 范钢 - 领域驱动之看我如何拥抱需求变更_部分1 范钢 - 领域驱动之看我如何拥抱需求变更_部分2 猫眼娱乐 王洋 - 领域驱动和O2O电商的养成记 中兴 张晔 - DDD驱动测试体系建设 黄亮 - 从OO到DDD 云雾科技 王立 - DDD实践中的一些思考 中兴 张晓龙 - 使用领域事件来解耦多任务间的依赖 ThoughtWorks 杨云 - DDD is a discipline

文档介绍

问题背景:在这个快速应对需求变化的时代,代码容易被实现成意大利面条式,同时重复代码多,又好像有一些不同,很多程序员都掉进了这个让人痛苦不堪的焦油坑,无法自拔。软件设计就是在长期以来让软件容易应对变化,提高可修改性和可维护性,从而降低软件开发成本。方案介绍:通过分层设计,分离关注点,凸显领域模型,降低层与层之间的依赖,同时有利于各层逻辑的复用或替换。《领域驱动设计-软件核心复杂性应对之道》这本书中,提出了传统的四层架构,层与层之间遵循松散分层架构,即上层可以调用任意下层。我们在实践中,将基础设施层分为横向的和纵向的,横向的API提供给领域层调用,纵向的API提供给应用层和用户界面层调用,其中领域层、应用层和用户界面层遵循严格分层架构,即上层仅能调用相邻的下层,这就是“L”型分层架构。将DCI应用在分层架构中,将出现五层架构模式,相对于传统的四层架构模式,基础设施层、应用层和用户界面层保持不变,将领域层分离成新领域层(Object/Role)和环境层(Context)。在一些复杂的领域,一次事务涉及很多次消息的交互,这时Context层就非常复杂,很有必要把Context层分离成新Context层(Action和Specification)和事务层(Transaction DSL)。新Context层基本单位是一次同步消息或异步消息的交互(记作Action),新Context层的Specification是Action或一组紧密相关的Action(记作Procedure)是否执行的开关,而事务层可以看做是大Context层。在实践中,我们抽取出Golang事务模型,基本版参见简书的文章《Golang事务模型》,地址https://www.jianshu.com/p/b7e874f6d3e8,一直在演进,目前已被多个团队使用。DDD六层架构模式可以看做是DDD五层架构模式在特定领域的一种变体。通过依赖导致原则,改善分层架构,即六边形架构。六边形架构在产品级有一些应用,比如平台聚合内部的各种能力,对外统一提供为Restful接口。六边形架构也可以用于不同层组件的协作开发,即在明确组件功能后就可以专注开发,待到联调阶段,该组件的多个用户分别通过端口适配器方式再与该组件进行集成。实施后效果说明:事务层代码和流程图一一对应,领域层代码通过小类大对象设计,代码层次清晰,有效的控制了软件的实现复杂度,并且得到了团队所有成员的普遍认可。

×

打开微信扫一扫,分享到朋友圈