领域驱动设计----消化知识

运用领域模型

  模型在领域驱动设计中的作用

  1. 模型和设计的可信互相影响
  2. 模型是团队所有成员的使用的通用语言的中枢
  3. 模型是浓缩的知识

消化知识

有效建模的要素

  1. 模型和实现的绑定
  2. 建立一种基于模型的语言,可以帮助各方相互理解索要表达的意思
  3. 开发一个蕴含丰富知识的模型,对象具有行为和强制性规则,包含各种类型的知识
  4. 提炼模型,在模型日趋完善的过程中,添加新的重要的概念,并移除不再使用或者不重要的部分。
  5. 头脑风暴和实验,在知识消化中将团队将团队的知识转化为有价值的模型

知识消化

一般是在开发人员的领导下,由开发人员和领域专家组成的团队来共同协作
知识的消化者:高效的领域建模人员
信息的原始资料:领域专家头脑中的知识

  领域模型的不断精化迫使开发人员学习重要的业务原理,而不是机械地进行功能开发;领域专家被迫提炼自己已经知道的重要知识,并逐渐理解软件项目所必须的概念严谨性。

  模型在不断改进的同时,也成为组织项目信息流的工具。模型聚焦于需求分析,模型永远都不是完美的,是一个不断演化的过程。

持续学习

  1. 项目知识零散的分散在人和文档中,并且可能掺杂有一些无用的信息
  2. 项目会丢失知识。已经学会知识的人可能去做别的工作;团队有可能因为重组而拆散;被外包的子系统可能仅交回代码…由于某种原因没有口头传递知识的时候,知识就丢失了
  3. 高效率的团队会有意识的积累知识并持续学习。

知识丰富的设计

  知识消化所产生的模型能够反映对知识的深层理解,在模型发生变化的同时,开发人员对实现进行重构,以便反映模型的变化,这样,新知识就被合并到应用程序中了

  通过与软件专家的紧密协作来消化知识的过程才使得规则更加澄清和充实,并消除规则之间的矛盾冲突以及删除一些无用的规则

深层模型

  随着对领域和应用程序需求的理解的逐渐加深,往往会丢弃那些最初看起来很重要的表面元素,或者切换他们的角度。有用的模型很少停留在表面