如何做领域驱动设计
构建领域知识
软件专家与领域专家交谈,提问—回应,一起建立领域模型。这种交谈不是单向的,是有反馈的。模型体现了两个专业领域的交汇。软件最终的目的是解决真实领域中的业务问题,它必须与领域完美结合。
共同语言
讨论和定义模型的过程中,我们需要讲同一种语言。领域驱动设计的一个核心原则是使用一种基于模型的语言。这种语言称为“通用语言”。通用语言连接起设计中的所有的部分,建立了设计团队良好工作的前提。通过为模型概念建立对应的类,我们在模型和代码之间以及在语言和代码之间做映射。UML图在只涉及少量元素时很有帮助。当它变大时,就会很难理解,一个中等规模项目的类图也会如此。UML擅长表现类,它们的属性和相互之间的关系。但类的行为和约束并不容易表现。
模型驱动设计
建模过程的目的是创建一个优良的模型,下一步是将模型实现成代码。紧密关联领域建模和设计。模型在构建时就考虑到软件和设计。开发人员会被加入到建模的过程中来。为了紧密捆绑起实现和模型,通常需要支持建模范型的软件开发工具和语言,例如面向对象编程。
过程化语言提供了有限的模型驱动设计的支持。这样的语言不能提供实现模型关键组件所必须的构建能力。过程化语言不足以完成表述各自模型的任务。因为这个原因,模型驱动设计中不推荐过程化编程。