名词解释
名词 | 意思 | 通俗解释 | 例子 |
---|---|---|---|
事件风暴 | 领域专家、产品经理、项目经理、架构师、开发经理和测试经理等人员在一起讨论整个产品的模型功能的一场头脑风暴 | 许多不同角色的人一起开会讨论产品 | 电商产品讨论会 |
用户故事 | 领域模型里的领域事件 | 产品的一系列动作事件 | 用户购买商品整个逻辑流程 |
通用语言 | 在限定上下文中的业务术语 | 统一认定的一个名词以及所表示的意义 | sku(不可分割的最小存货单元)、内存(电脑的运行内存) |
限定上下文 | 通用语言所在的边界 | 人为分类范围的一个边界 | 商品域内、库存域内 |
领域 | 在用户故事中人为认为的一种分类集合 | 分类集合 | 商品域,库存域、用户域 |
实体 | 拥有唯一标识符的领域里的聚合、拆分的实体对象,DomainEntity | 聚合或者拆分的model对象 | 商品信息实体(商品、库存、价格)、价格、折扣实体 |
值对象 | 在实体中,可以设计为实体的附属对象叫值对象 | 实体对象中当前实体的附属对象 | 人员信息(实体)中的地址信息(值对象) |
聚合 | 聚合的本质就是建立了一个比对象粒度更大的边界,聚集那些紧密关联的对象,形成了一个业务上的对象整体。使用聚合根作为对外的交互入口,从而保证了多个互相关联的对象的一致性 | 订单聚合 | |
聚合根 | 一个聚合里面的主实体 | 订单聚合 | 采购单,销售单 |
领域事件 | 一个领域行为的结果 | 领域里面要通知其他领域的事件 | 下单成功事件,扣款成功事件 |
ddd分层
start(启动类):启动类,简单的全局配置,AppConfig
adapter(用户接口层): 对外提供接口的模块,web,app,intranet(一般为client模块的实现)
client(客户端层):一般是为二方提供接口的模块(此模块需要给调用方打包)
app(应用层):应用服务,对应用的业务流转和编排,常调用领域层
domain(领域层):关注于领域:领域事件,领域服务,领域实体,值对象
infrastructure(基础层):常用的配置信息,公用的枚举常量,调用第三方,缓存,mq,数据库等。