[阅读笔记]《领域驱动设计》第三章:绑定模型和实现
2021-05-11 本文已影响0人
Gael
本章主要讲述了在软件开发中,使用「模型」的重要性。
作者首先举了两个失败的软件开发例子:
- 从设计之初就不使用模型。这种程序只是功能的堆砌。
- 开发前进行了模型设计,但软件实现时没有使用模型。那么前期的模型设计毫无意义。
正确的软件开发应该由领域专家和技术人员共同建模,以确保最终得到一个「既可以描述领域知识,又符合软件设计」的模型,让代码成为模型的表达。
依赖模型的实现需要支持建模范式的开发工具和语言。具体指支持面向对象的编程语言。
作者也通过一个电路板布线软件的例子,进行了软件的正确示范和反面示范。
反面示范中,布线软件只是一个文件处理脚本工具,没有什么具体语义。
正面示范中,软件对引脚,总线等概念进行了建模,抽象出他们的方法,并提供了相应的service,repo等服务。
作者也通过IE浏览器书签的例子,说明了领域模型对用户的重要意义。不应该把实现暴露给用户,产生多余的理解成本。
最后作者讲述了一个观点:高级软件工程师/建模技术人员/架构师也应该身体力行参与编码,主要有两点原因。
- 模型的细节会在沟通中造成损失。如果架构师不参与开发,一些细节问题可能不会被实现正确理解。
- 模型、程序实现、技术是相互影响的。如果架构师脱离开发,那么他无法直接获得技术的反馈。例如一些性能问题,可能很久后才能被发现。