我正在参加「掘金·启航计划」
领域模型
领域专家和交付团队都理解了。现在轮到计算机了。
对领域模型的要求是程序员可以参照模型直接实现代码,这样才能让计算机和咱们也统一了语言,可以高效沟通了。
源码实现
纸上得来终觉浅,既要理论,也要实践。
Show Me the Code:
模型和源码:
按照模型编码过程中,模型的细节变得越来越丰富,小方块的颜色也是变来变去。因为模型的变动和Golang不能循环引用的规则,源码库中的文件也跟着移来移去。可以看出模型和语言是相互作用的,并不是一方完全主宰另一方。
从领域模型的视野出发,我们能很容易识别出领域中主要的概念,但有一些隐藏的知识并不能在一开始就识别出来。这就需要在源码实现的过程中推敲出这些细节,和团队及领域专家反复沟通。
从源码实现的角度出发,要想实现领域模型,我们还需要借助于编程领域的知识,像数据结构、架构设计等等。这也是整套模型想要高效运行所必需的信息。
这样来看,模型中需要包含业务领域概念,也需要包含技术领域概念。这有助于帮助业务成员理解技术的复杂度,也能帮助技术人员理解业务的逻辑。这也正是DDD所追求的统一语言。
思考
- 如果引入FSM来解析Markdown?领域模型会变成什么样?