1 DDD 入门 领域模型是关于某个特定业务领域的软件模型
通常,领域模型通过对象模型来实现,这些对象同时包含了数据和行为,并且表达了准确的业务含义
1 领域模型的优点 使领域专家和开发人员在一起工作,形成一个紧密的团队,使代码就像是领域专家自己编写的一样
可以帮助领域专家、开发人员互相提高业务水平 保证对业务知识的集中,使业务知识不必集中于少数人手中 使领域专家与开发人员之间不存在“翻译”语言,大家用同一种语言在交流,不存在沟通的障碍
清晰的系统结构,利用限界上下文可以更好的划分系统模型边界
DDD 的战略设计可以帮助我们定义不同团队之间的组织关系,并在这些关系有可能导致项目失败的时候提供预警
还可以清楚的划分不同的系统和业务关注点
2 贫血模型 只有 get、set 方法与属性而没有其他行为方法的对象被称之为贫血对象
贫血模型只是将关系数据库中的模型映射到了对象上而已
贫血模型造成系统的维护变得异常困难
贫血对象是现在的Web 框架和持久化框架的流行造成的
比如Hibernate 和Stru ts2 传递对象拥有get、set 方法
不过现在Hibernate在持久化时已经不需要 get、set 方法了
3 如何做 DDD 通用语言和限界上下文是DDD 的两大支柱,并且是相辅相成的
通用语言是团队内的领域专家和开发人员共同创建的共用语言
通用语言和限界上下文存在一对一的关系,通用语言在多个限界上下文中有可能存在不一样的意思
只有在一个限界上下文中讨论此通用语言才有意义
1 通用语言发现过程 利用物理模型图和概念模型图,并标以名字和行为
这些设计图包含了系统建模的某方面,即使我们在项目中应用了 UML 也还是需要这两个设计图来完成团队之间的讨论
利用术语表和文档 2 领域、子域和限界上下文