1概述
作为架构师,我们在业务建模的时候不能完全凭经验、感觉,我们还得有一套方法论,DDD领域驱动恰巧可以作为业务建模的方法论来使用。
2 为什么要使用DDD
2.1 为什么需要DDD
- 复杂系统设计:系统多,业务逻辑复杂,概念不清晰,有什么合适的方法帮助我们理清楚边界,逻辑和概念?
- 多团队协调:边界不清晰,系统依赖复杂,语言不统一导致沟通和理解困难。有没有一种方式把业务和技术概念统一,大家用一种语言沟通。例如:航程是大家所理解的航程吗?
- 设计与实现一致性:PRD,详细设计和代码实现天差万别。有什么方法可以把业务需求快速转换为设计,同时还要保持设计与代码的一致性?
- 架构统一(可复用和扩展):当前取决于开发的同学具备很好的抽象能力和高编程的技能。有什么好的方法指导我们做抽象和实现。
2.2 DDD的价值
- 边界清晰的设计方法:通过领域划分,识别哪些需求应该在哪些领域,不断拉齐团队对需求的认知,分而治之,控制规模。
- 统一语言:团队在有边界的上下文中有意识的形成对事务进行统一的描述,形成统一的概念(模型)。
- 业务领域的知识沉淀:通过反复论证和提炼模型,使得模型必须与业务的真实世界保持一致。促使知识(模型)可以很好的传递和维护。
- 面向业务建模:领域模型与数据模型分离,业务复杂度和技术复杂度分离。
参考
迄今为止最完整的DDD实践