将隐式概念转变为显式概念.
深层模型之所以这样能强大,因为它包含了领域的核心概念和抽象,能够以简单灵活的方式表达出基本的用户活动,问题以及解决方案.深层模型第一步就是要表达领域的基本概念.
概念挖掘
倾听语言
如果你有机会和业务专家交流,那么就有可能听到他们重复提到某些概念.那么这些概念就很重要.使用他们将极大的改善你的模型
检查不足之处
检查你的系统最复杂且难以解释的地方.这个地方可以询问领域专家,听取他们的意见.如果没有领域专家,你需要自己来理解并挖掘其中的概念
思考矛盾之处
如果在程序的开发过程之中发现有概念理论有矛盾之处,那么认真思考这些地方.你离深层模型又近了一步.
查阅书籍
查看那些解释基本概念和传统思想的书籍.这些书籍可以帮组你一开始就形成一致且深度的认识.虽然你还需要和领域专家合作才能将他们转化为面向对象软件的概念
尝试在尝试
evans在书中说要尝试六七遍才能得到一个清晰的概念.如果你在做一个没有任何固有参考的模型,那么尝试十几次也是有可能的.不要固执已见.
为何为那些不太明显的概念建模
书中讲了三个概念:约束,过程,规则
显式的约束
约束一般隐含在程序中,显式它们会极大提高设计的质量.你需要根据约束和领域对象的关系将他们提取为方法,对象,对象集合.
过程建模为领域对象
这里的过程是指被领域专家经常提及的过程
规格(specification)
规格也是一种模式,evans和别人提出的.逻辑编程范式.规格是一个谓词,用来确定对象是否满足某些标准.
谓词:计算结果为真假的函数.
规格作用
-
验证对象
-
从集合中选择一个对象
-
指定创建新对象时必须满足某种需求.
指定建新对象时必须满足某种需求
- 生成器的实现与接口分离
- 接口把规则显示表示出来,开发人员无法了解细节就能知道结果.
- 接口更为灵活,只要实现specification的要求就行
- 便于测试.
通过可工作的原型来摆脱开发僵局
当有其他相关开发团队的工作依赖你的工作时,请先开发出一个可用的原型来满足他们的工作.