领域驱动设计学习的一些总结(阅读dddquickly有感)

本小妞迷上赌 提交于 2019-12-09 21:48:44

一 为什么要有领域驱动设计?

首先,计算机技术的作用(特别是软件技术)是为了解决现实世界某一个领域的问题,脱离了这些问题,单纯的算法,编程语言,或者操作系统都并没有实际的意义。但是开发人员往往只喜欢研究技术问题,而忽视了领域问题的学习。例如下面一个例子:

“我要在这个项目中使用苹果公司新推出的Swift语言,在服务器端使用Hadoop,最好再尝试一下深度 学习方面的技术”,然后就一头扎进这些时髦和高大上的技术之中。三个月后,你去问他需要解决的领域中的真实问题是什么,他还是一脸茫然。”

这样的开发人员就是兴趣驱动型的开发人员。只追求技术,而忽视领域问题的软件,质量自然也是无法保证。

  一个有力的观点指出了这一点:布鲁克斯老先生将维护软件的“概念完整性”作为软件开发的核心问题。软件之所以很复杂,难以维护,根本原因就在于软件概念的完整性遭到了破坏。甚至开发团队的成员从来就没有意识到有必要去维护软件概念的完整性,他们只是一些自行其是的开发人员,碰巧在于一个团队中一起堆代码而已。

   当然,在实际的开发过程中,经常有软件概念完整性遭到破坏的情况发生,一部分原因是开发人员喜欢追求高大上的技术,产品功能对他们来说只是甲方提的需求,他只用考虑技术上能否实现。另一方面是产品设计人员缺乏相关的素质,他们只能进行表面功能的设计,而无法看到软件需要解决的核心问题。最终造成功能设计和开发出来的功能完全脱离了实际要解决的问题,功能无法满足用户需求,也代码越来越难以维护,最终导致软件开发的失败。

   所以,必须要有领域驱动设计,通过分析问题模型,提炼出良好的领域模型,最大程度的维护软件概念的完整性,才是保证软件开发能够成功的关键。

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!