1、架构分层模型适配吴雪峰201811 有效防止架构腐化实践CONTENTS01DDD分层参考架构02严纪律 防腐化 分层模型适配03分层模型适配实例DDD分层参考架构DDD分层参考架构给用户提供界面,关注用户交互和体验前端应用API服务业务领域基础设施为前端应用提供API服务,关注事务和分布式等技术性问题领域模型和领域逻辑,关注业务概念。访问外界系统(调用外界系统)的技术相关实现。后台服务前端应用分层依据:干系人和技术点DDD分层参考架构-前端应用DDD重点关注后台业务服务,不解决前端交互问题前端界面API服务业务领域基础设施前端应用前端应用干系人:终端用户 诉求:良好的用户体验 技术点:人机交
2、互设计和实现UX关注的层DDD分层参考架构为前端和第三方应用提供API服务,关注服务编排,事务和分布式等前端应用应用服务业务领域基础设施干系人:应用开发人员 诉求:灵活易使用的API 技术点:性能,事务,分布式,安全等非功能性需求API服务工作内容:接收外部请求并响应:如HTTP请求,消息处理 事务管理 认证 缓存 日志 异常处理 配置 Session技术人员关注的层腐化案例:大量业务逻辑堆积模型:View Object Resource ModelDDD分层参考架构领域模型和领域逻辑,关注业务概念。前端应用API服务领域模型基础设施干系人:业务领域专家,业务领导 诉求:表现业务概念和实现业务
3、价值 要点:业务建模和复杂性管理工作内容:建立业务模型,并体现在代码上 管理模型复杂度,适度拆分模块 实现业务逻辑业务人员关注的层业务领域腐化案例:亏空 大量技术术语业务人员完全看不懂 模型:应用服务 跨Bond Context DTO 领域服务 跨聚合 聚合 实体 仓库 事件DDD分层参考架构访问外界系统(调用外界系统)的技术相关实现。前端应用API服务业务领域基础设施干系人:外界系统 诉求:稳定调用外部系统 技术点:使用和适配外部系统模型,隔离和快速诊断错误工作内容:学习和使用外部系统,如数据库,邮件系统 适配外部系统模型,如SQL映射到模型对象 技术人员关注的层基础设施腐化案例:业务逻辑
4、和外部调用逻辑混合 如一个方法里即处理业务逻辑又调用SQL模型内容:PO 第三方Protobuffer 第三方SDKDDD分层参考架构 Java技术视角前端应用API服务业务领域基础设施技术人员关注的层技术人员关注的层业务人员关注的层UX关注的层Web,Spring Boot,Kafka,Redis,JTA,两阶段提交,SSO,服务注册ORM,SQL DB,NoSql,服务发现尽量少依赖技术框架,让业务人员也看得懂代码参考架构对比https:/ DDD NLayered.NET 4.0 Architecture 前后端分离,完全剥离曾现层为了简便,合并Web Service和Applicati
5、on层Controller概念下移到Application层参考架构对比微服务架构https:/ Gateways,HTTP Client和ORM领域层对应 Service Layer,Domain和RepositoriesDDD分层架构对比前端应用API服务领域模型基础设施业务领域DDD分层架构对比Clean Architecture前端应用API服务领域模型基础设施业务领域https:/ Architecture前端应用API服务领域模型基础设施业务领域https:/en.wikipedia.org/wiki/4%2B1_architectural_view_modelclass diag
6、rams,and state diagramsactivity diagramPackage diagramuse casesdeployment diagramDDD分层架构对比 Enterprise architecture framework 前端应用API服务领域模型基础设施业务领域如何有效防止架构腐化架构腐化是系统开发过程中非常头疼的事情。使用DDD分层架构参考实践,可以在系统初始设计的时候领域明确出来。但问题是开发过程中不知不觉层次模糊,架构师有没有实践能有效阻止架构腐化?分层模型适配如何从一盘散沙到百万雄师百万雄师的铸造秘密 踢正步 叠被子知行合一 每个人日常就能做到 在日常最细