DDD是什么
DDD是一种应对复杂领域的软件设计方法, 它告诉我们如何对需求进行分析、建模, 如何对软件进行设计、实现, 从而构建一个高质量的软件系统。
DDD的优点
- 提高软件开发质量与效率
- 减少因需求理解不一致导致的软件错误和返工
- 使代码更容易理解、易维护、易测试
DDD的设计原则
- 在设计与实现功能之前,首先要对齐大家对领域中业务需求的理解(通过使用事件风暴、用户故事地图、无处不在的语言)
- 将领域业务需求的解决方案划分为自治的、解耦的、可以各自演进的 有界上下文
- 通过 类型系统 来捕获领域中的业务需求,领域中的名词可能是数据结构,动词可能是函数,类型系统可在代码运行前的编译阶段提前暴露出一些低级的编码错误
- 保持函数的纯粹性、单一职责、确定性,函数结果不应受外部变化的影响,应参数化对外部的依赖,一个函数应该只负责一件事,函数的每个输入应该对应唯一确定的输出
DDD的注意事项
- 领域驱动设计的最重要挑战之一是正确划分上下文边界。
- 实现的代码最好能对需求进行无损翻译,并作为非开发人员可读懂的产品文档。