Strategic Design-战略设计
There is no sense in talking about the solution before we agree on the problem, and no sense
talking about the implementation steps before we agree on the solution.
—Efrat Goldratt-Ashla
“在我们就问题达成一致之前讨论解决方案并没有意义,在我们就解决方案达成一致之前讨论实现步骤也没有意义。”
领域驱动设计(DDD)方法可分为两个主要部分:战略设计和战术设计。DDD的战略设计部分是回答“什么?”和“为什么呢?””——我们在开发什么软件,为什么我们要开发它。战术设计部分都是关于“如何”——如何实现每个组件。
我们将从探索领域驱动的设计模式和战略设计的原则来开始我们的学习旅程:
在第一章中,你将学习分析一家公司的业务模式:它为其消费者提供了什么价值,以及它如何与该行业中的其他公司竞争。我们将识别更细粒度的业务模块,评估它们的战略价值,并分析它们如何影响软件设计方案。
第二章介绍了领域驱动的设计对于理解业务领域的基本实践:统一语言。您将学习如何习惯使用统一语言,促进项目相关的成员对业务形成共同的理解。
第三章讨论了另一个领域驱动的设计核心工具:界限的上下文模式。您将了解为什么这个工具对于培养统一语言的习惯至关重要,以及如何使用它将已挖掘出来的知识转换为业务领域的模型。最终,我们将利用界限上下文来设计软件系统的粗粒度组件。
在第四章中,您将学习面对不同的限制和方案,如何选择系统实现所需的组件的技术和契约。
我们将讨论每个模式如何影响软件开发团队之间的协作以及组件的api的设计。
这一章通过介绍界限上下文地图作为结尾。上下地图:一个图形符号,绘制系统的界限上下文之间的通信,提供了该项目的集成和不同界限上下文如何协作的鸟瞰图。
- 第一章,业务领域定义
- 第二章,发掘核心领域业务
- 第三章,控制核心域的复杂性
- 第四章,集成界限上下文