在领域驱动领域, Eric Evans的领域驱动设计是经典之作, 分几期和大家分享下自己当时读这本书时的笔记.
模型在领域驱动设计中的作用
模型与现实紧密相连,我们可以给予对模型的理解来解释代码;
模型是团队成员使用的通用语言。
模型是浓缩的知识。
消化知识
在建模的过程逐步消化领域知识。
有效建模的要素
模型与现实的绑定。在迭代中一致持续的维护模型与现实的关系。
建立了一种基于模型的语言。使领域专家和开发者都能够直接使用模型中的语言交流。
开发一个蕴含丰富知识的模型。模型包含各种类型的知识。
提炼模型。模型完善的过程中,加入重要的概念,移除不需要的或不重要的概念。
头脑风暴和试验。不断地讨论,表达,通过知识消化将团队的知识转化为有价值的模型。
知识丰富的设计
模型的建立不只是“发现名词”,业务活动和规则如同所设计的实体一样,都是领域的核心。
业务规则和策略页可以在领域模型中表现出来。
知识消化是一种探索,它永无止境。
交流与语言的使用
将模型作为交流语言的支柱。
大声的建模,领域专家和开发人员频繁交流,产生团队的领域模型术语;
文档和图都可以作为代码和口头交流的补充;
不能使用大而全的UML图,图应该简洁,只包括重要概念;
也不能用代码代替文档,读代码可能会使人淹没在细节中;
模型不是图,图的目的是帮助表达和解释模型。
绑定模型与实现
严格按照模型来编写代码,能够使代码更好地表达设计含义,并且使模型与实际的系统相契合。
模型驱动设计,不再将分析模型和程序设计分离开,而是寻求一种能够满足这两方面需求的单一模型。
hands on modeler
分析建模和编程工作不能过度分离,设计人员和编程人员要及时交换对于模型的想法。