未来的软件系统,很可能不再依赖大量手写的代码,而是依赖可验证的业务规范,以及对这些规范的自动化实现。\ ——这正是从 DDD → SDD + TDD 的演进方向。
在 AI 深度参与软件开发的时代,传统的代码中心开发方式正在加速老化。\ 我们正在经历一次结构性转变:\ 从“写代码”转向“写规范 + 写测试 + 让 AI 自动补全逻辑”。
这篇文章试图提供一个前瞻性的观点(深度使用 vibe coding 近半年后的想法):\ 领域驱动设计(DDD)将演进为以规范为核心的 SDD(Spec-Driven Development),并与 TDD 深度融合,形成未来 AI 自动化开发的基础范式。
Auto-Coding 示意图
graph LR
DDD --> AI(AI Driven)
AI --> SDD1["SDD(Self-Containd)"] --> AI_apply[AI Apply] --> TDD[TDD] --> AI_last[AI complete]
AI --> SDD2["SDD(Self-Containd)"] --> AI_apply
AI --> SDD3["SDD(Self-Containd)"...] --> AI_apply
AI_last --> |Auto Coding| AI_apply
TLDR;
DDD 提供了:
这些思想极其重要,但它有一个天然的短板:
DDD 不提供可以被机器直接消费的“规范化结构”。
DDD 写成文档、白板图、人类可读的分析,但对机器而言,它仍然太模糊:
这些是业务描述,但不是机器可执行的规则。
因此:
传统 DDD 让 AI 无从下手,而 SDD(规范驱动开发)提供了突破口。
它强调:
先以业务规范(Spec)定义领域行为,再让代码(甚至 AI 自动化生成)去满足规范。
SDD 不像 PRD,也不是 UML,也不是流程图。\ 它是:
的“业务行为规范”。
例如:
domain: order
events:
- OrderCreated
- PaymentCompleted
rules:
- name: auto_ship
on: PaymentCompleted
do: ShipOrder
这是机器可理解的。\ AI 可以从这里生成:
而人类只需要写规范。
SDD 是 DDD 的“可执行层”。\ DDD 提供思想,SDD 提供让机器执行的内容。
当我们有了可执行规范(SDD)之后,下一步是什么?
不是直接写代码。\ 而是:
用 TDD(测试驱动开发)来验证 AI 是否正确实现了规范。
TDD 在 AI 时代获得了全新地位:
在 TDD 中,一个领域规则被验证为:
Given 某状态
When 某事件发生
Then 应产生某行为
它和 SDD 的事件模型天然对齐。
例如:
Scenario: Payment triggers shipping
Given order is created
When PaymentCompleted event is received
Then order should become Shipped
And OrderShipped event should be emitted
AI 可以据此自动修正代码,直到测试通过。
以下是未来项目的典型流程:
DDD 是战略层,它定义“是什么”。
将 DDD 转化为结构化规范:
SDD 是执行层,它定义“应该怎样”。
AI 自动根据 SDD 生成初始代码框架后:
TDD 是守护层,它定义“是否满足规范”。
AI 根据 SDD + TDD 自动生成:
开发者从“写代码”转向:
写规范(SDD) + 写验证(TDD)
代码由 AI 完成
业务由 DDD 驱动
三个不可逆的趋势在合力推动:
日常代码(Curd、API、Repository)\ 已经能由 AI 几乎零成本生成。
未来开发者不需要写这些。
业务规则每天在变:
用规范驱动业务,比改代码快十倍。
随着 AI 自动写代码,真正重要的就变成:
这正是 SDD + TDD 的价值所在。
DDD 和 SDD 都强调“领域事件”\ TDD 也以事件触发逻辑为基础。
因此未来的系统几乎全会是:
事件驱动的系统\ (事件是行为主线,规范是规则,测试是验证)
其优势在于:
现在:\ 开发者 → 写代码、写接口、调试、修 bug
未来:\ 开发者 → 写规范、定义领域、设计业务规则、写测试
AI → 自动生成代码、复写、修复、优化
开发者成为“业务逻辑的法官”,不是“代码的工人”。
DDD 不会消失,它会成为软件系统的哲学基座。
但真正能与 AI 深度结合的,是:
未来的主流开发方式将会是:
DDD(理念) → SDD(规范) → TDD(验证) → AI(实现)
这是一个比过去任何开发范式都更清晰、更可控、更自动化的未来。
而这条路径,也许正是未来 5~10 年软件工程的主干路线。