DDD概念理解

1、统一语言:通过团队交流、达成共识的、能够准确传递业务规则的、简单:语音
特点:通用、简单、无歧义
价值:解决了沟通障碍问题,使领域专家和开发人员协同合作

2、领域模型:把通用语言表达成软件模型
特点:综合了系统分析和设计,语言、模型、代码三者紧密绑定,可以通过UML类图来展示

3、领域:软件系统要解决实际问题(业务)的集合
解决方案空间:如何实现软件以解决业务挑战

4、子领域
核心域:业务系统核心价值所在,支持子领域,通用子领域
例子:电商领域
核心领域:销售子领域,通用领域:日志子领域,支持领域:物流子领域

5、限界上下文
限界:一个界限,具体某个范围---领域模型的边界
本质:保证模型概念的清晰和无歧义,避免有多重概念和职责的模型
例子:商品,在采购上下文中叫:补货商品,在售后上下文中叫:售后商品,都叫商品,但侧重点不同
梳理关系:上下文映射图:描述不同模型的联系点,上下文依赖

6、应用服务
表述应用行为
例子:购物车结算-》应用行为隐藏领域层的复杂性及内部实现

7、领域服务
表述领域行为:金额计算、支付、生成订单

8、聚合
领域对象的显示分组
封装业务,保证聚合内领域对象的数据一致性
难点:一致性维护
聚合内实现事物一致性,聚合外实现最终一致性

9、实体
实体=唯一身份表示+可变性(状态、属性)+行为(方法/领域事件、领域服务)
可变性:实体行为:订单行为:支付、发货、关闭
实体状态:已支付、已发货、已关闭

10、值对象
将一个值用对象的方式进行表达,表达一个固定不变的概念
例如:订单里的收货地址(订单里的收货地址没有状态不会变。可以冗余到订单表多个字段或一个字段用json存储)

11、仓库
领域模型与持久化存储之间的明确契约(封装ORM框架对领域暴漏持久化接口)

12、领域事件
实现方式:数据库持久化,通过中间件去分发

13、工厂
14、模块
对领域模型进行分解后相对独立的功能单元,由一系列高内聚的领域对象组成
设计:根据领域组织模块,基于通用语音(模块命名),模块内高内聚模块间低耦合
实现方式:同一个项目通过模块名称进行分离,通过多个项目进行分离

15架构风格
1、分层架构,2、六边形(端口和适配器),3、面相服务,4、RESTFul,5、命令查询分离CQRS,6、事件驱动
分层架构(4层架构):UI层,应用层,领域层,基础设施层
UI层:接收用户输入,输出JSON数据,Facade层:分离UI和应用层讲应用层数据映射成UI层适应的数据
应用层:定义实现业务功能,通过编排领域层接口实现功能
领域层:具体的业务能力,对应领域内的领域模型及代码实现,具体的功能
基础设施层:为其它层提供技术支持,包含持久化、序列化、消息、缓存

六边形架构:
端口:应用层(application)和领域层(Domain)通过端口(API调用)实现
适配器:针对不同的外部资源可以对接不同的适配器
保证内部逻辑的独立和外部依赖的解耦

SOA:注重服务的重用性,倾向于通过统一的服务总线将服务链接起来,形成服务试图,注重系统的整体性和统一性
微服务:以业务能力为中心,重视服务自治,每个服务都有独立的开发、部署环境、数据库、技术栈,强调敏捷和快速迭代

RESTFul:表述性状态转换,基于http,url,xml,json等标准格式,面向资源的架构模式

命令查询职责分离CQRS:读写分离,实体,接口都分离


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值