在理解了DDD战术设计
中的那些概念以后,就可以试着整合代码了。
对于架构师或者PM
来说,最核心的部分是战略设计
。但对于工程师们来说,最核心的部分其实是战术设计
以及它之后的代码落地
,因为Talk is cheap, Show me the code
。
在理解了DDD战术设计
中的那些概念以后,就可以试着整合代码了。
对于架构师或者PM
来说,最核心的部分是战略设计
。但对于工程师们来说,最核心的部分其实是战术设计
以及它之后的代码落地
,因为Talk is cheap, Show me the code
。
战略分析
完成之后,就到了战术分析
阶段。
相对于战略设计
的抽象,战术设计
就比较具体了,它更多的是将业务需求映射到技术代码的层次结构上,设计上下文
里都包含哪些类,这些类之间又该如何配合等。
战术设计
基本上由实体
、值对象
、聚合
、领域事件和命令
、领域服务
、工厂和资源库
、充血模型
这几个主要部分组成。
在经过业务分析
后,整个系统的轮廓就被大致勾勒出来了,但这明显是一个极为粗略的轮廓,或者称为骨架
。
接下来,就可以按照这个轮廓或者骨架
所展示的样子,来对它做更进一步的分析和设计,赋予灵魂,填充血肉
,让它符合各方的期望。
和业务分析
一样,战略设计
的路线图大致是这样子的。
我个人的习惯是在进行业务分析
时走这样的路线图
。
想学习一种思想或一门技术,就需要理解这个思想或技术所赖以存在的环境,也称语境
,也就是俗称的行话
,或者专业术语
。
本想将这些概念融入到具体案例分析之中,但结合自己的学习经历和痛点,觉得有一本小册子一样的东西可能更好,尤其是对于DDD这种复杂度稍高的设计思想来说尤其如此。一来方便集中查阅,二来也可以集中做出解释,避免出现前后不一致的混乱。
vs. / vs / v.s / v.s. / Vs. / ... / 底哪种才算正确?
https://spencerlam.hk/blog/2024/01/13/vs/这里有不算权威,但应该是正确的解释。