- 架构真意:企业级应用架构设计方法论与实践
- 范钢 孙玄
- 744字
- 2021-07-16 16:50:51
2.3.5 领域驱动设计总结
领域模型改变了软件设计的思维方式。过去,我们在进行软件开发的时候,用户说他想要什么功能,我们就给用户做什么功能。然而,在这个过程中,不论是客户还是我们,都不能掌握准确理解需求所需的所有知识。这就导致,无论是客户还是我们都不能准确地理解与描述软件需求。在需求分析中常常会出现这种情况:客户以为他把需求描述得足够清楚了,我们也以为我们听得足够清楚了,但当软件开发出来以后,客户才发现这并不是他需要的软件,而我们才发现并没有真正理解需求。尽管如此,客户依然没有想清楚他想要什么,而我们还是不知道该怎样做。
采用领域驱动设计的核心就是统一语言,也就是我们去主动理解业务,理解业务流程与业务痛点,理解用户提出的业务需求背后的动机。当我们深刻理解了业务后,再运用专业知识去思考软件到底应当给用户提供什么样的功能。这样的思考将更加深刻、更加专业,从而有效避免了很多无谓的变更。领域驱动设计的过程如图2-17所示。
图2-16 适配器模式的程序设计
图2-17 领域驱动设计的过程
无谓的变更不等于没有变更。我们对业务及其痛点的理解是一个由浅入深的过程,我们对业务理解得越来越深刻后,就会开始思考软件还应当提供什么样的功能才能更好地解决用户痛点,把软件做得更专业,让用户更满意。这时,我们就开始主动去变更功能,而不再是被动地接收用户的需求。
领域模型可以表达我们对业务领域知识的理解,然后将这种理解转换为设计,包括数据库设计与程序设计。随着我们对业务的理解越来越深刻,就会将这些理解落实到领域模型中,对领域模型进行相应的调整。接着,将这样的调整落实到数据库和程序设计中。如果我们采用了这样的设计过程,就能让软件设计质量更高,日后维护的成本更低,从而更有效地降低软件开发过程中的风险,带领软件团队更平稳地去开发软件项目。