战术设计聚合工作坊

简介: 战术设计聚合工作坊

聚合是领域驱动战术设计最为核心的技术要素,也是制约战术设计成败与质量的关键。本次工作坊将根据一个实际案例的对象模型,按照领域驱动设计的聚合设计原则识别聚合,以求获得高质量的聚合模型。

在《Domain-Driven Design Reference》中,Eric Evans阐释了何谓聚合模式:“将实体和值对象划分为聚合并围绕着聚合定义边界。选择一个实体作为每个聚合的根,并允许外部对象仅能持有聚合根的引用。作为一个整体来定义聚合的属性和不变量(Invariants),并将执行职责(enforcement responsibility)赋予聚合根或指定的框架机制。


解读这一定义,可以得到如下聚合的基本特征:

  • 聚合是包含了实体和值对象的一个边界
  • 聚合内包含的实体和值对象形成了一棵树,只有实体才能作为这棵树的根,这个根称为聚合根(Aggregate Root),这个实体称为根实体
  • 外部对象只允许持有聚合根的引用,如此才能起到边界的控制作用
  • 聚合作为一个完整的领域概念整体,在其内部会维护这个领域概念的完整性,体现业务上的不变量约束
  • 由聚合根统一对外提供履行该领域概念职责的行为方法,实现内部各个对象之间的行为协作


本次工作坊通过一个实际案例按照一种“庖丁解牛”式的聚合设计过程进行,帮助你准确地识别聚合,确定聚合的边界。

相关文章
|
存储 架构师 数据可视化
一文弄懂数据架构和信息架构的区别
我们经常会听到关于数据架构和信息架构的讨论,它们是一回事吗?让我们看看数据和信息之间的区别,以及组织需要考虑的关键事项。
一文弄懂数据架构和信息架构的区别
|
25天前
|
人工智能 运维 自然语言处理
企业内训新范式:从“知识传递”到“战略杠杆”,如何实现培训价值倍增?
据2024年《中国企业培训白皮书》显示,超过68%的央国企和上市公司已将“业务场景实战”作为内训核心指标,而传统通用型课程采购量同比下降27%。在这场变革中,如何让培训从“知识传递”进化为“战斗力转化”? 本文将结合近两年先锋案例,拆解一套可落地的内训体系构建方法论。
|
机器学习/深度学习 存储 人工智能
ChatGPT的各项超能力从哪儿来?万字拆解追溯技术路线图来了!(1)
ChatGPT的各项超能力从哪儿来?万字拆解追溯技术路线图来了!
208 0
|
机器学习/深度学习 存储 自然语言处理
ChatGPT的各项超能力从哪儿来?万字拆解追溯技术路线图来了!(2)
ChatGPT的各项超能力从哪儿来?万字拆解追溯技术路线图来了!
204 0
|
设计模式 容器
领域驱动设计总结——如何发掘深层次模型
本文为领域驱动设计系列总结的第四篇,主要对领域驱动设计概念做个介绍,本系列领域驱动设计总结主要是在Eric Evans 所编写的《领域驱动设计》 一书的基础上进行归纳和总结。本文主要介绍在领域驱动设计中如何发掘深层次模型。
319 0
|
前端开发 测试技术 定位技术
DDD实战之八:冲刺 1 战术之聚合设计(上)
DDD实战之八:冲刺 1 战术之聚合设计(上)
DDD实战之八:冲刺 1 战术之聚合设计(上)
|
前端开发 小程序 Java
DDD实战之八:冲刺 1 战术之聚合设计(下)
DDD实战之八:冲刺 1 战术之聚合设计(下)
DDD实战之八:冲刺 1 战术之聚合设计(下)
|
消息中间件 运维 前端开发
DDD实战之六:战略设计之技术决策
DDD实战之六:战略设计之技术决策
DDD实战之六:战略设计之技术决策
|
架构师 前端开发 测试技术
为了成为一名架构师必须稳扎稳打,软件架构设计的模块划分
之前,我们在开发的时候总是惯性思维的以某张业务表的维度进行三层结构的功能开发,没有去思考他们功能模块间的关系,只是为了完成目标而进行开发。
绩效被打C了!谈谈「绩效考核」背后的逻辑以及潜规则
在新公司度过了一个完整的 Q3 季度,被打了绩效,也给下属打了绩效,感慨颇深。 今天就好好聊聊大厂打工人最最关心的「绩效考核」,谈谈它背后的逻辑以及潜规则,摸清楚了它,你在大厂这片丛林里才能更好的生存下去。