SDD 模式下开发者的角色转变
在传统开发中,开发者主要是"写代码的人"。引入 SDD + Agentic Coding 后,开发者至少需要承担 六个核心角色:
1. 架构决策者(Architecture Decision Maker)
做什么: 定义系统的骨架,做出不可逆的技术选择。
| 决策维度 | 示例 |
|---|---|
| 架构风格 | 单体 vs 微服务 vs Serverless |
| 技术选型 | Spring Boot vs NestJS、PostgreSQL vs MongoDB |
| 通信模式 | REST vs gRPC vs Event-Driven |
| 部署拓扑 | 单区 vs 多区、K8s vs 托管服务 |
AI 可以给你 5 个方案并分析利弊,但"选哪个"必须是你决定。 因为架构决策会影响未来 2-3 年的演进空间,AI 没有你对业务、团队、成本的综合判断。
2. 需求翻译官(Requirement Translator)
做什么: 把模糊的业务需求转化为精确的、AI 可执行的设计描述。
bash
┌─────────────┐
业务方说: │ "我要一个 │
"用户管理" │ 登录系统" │
└──────┬──────┘
│ ← 你的翻译工作
▼
┌─────────────────────────────────────┐
│ ## 用户认证模块 SDD │
│ │
│ ### 功能边界 │
│ - 支持邮箱+密码注册/登录 │
│ - 支持 OAuth2.0 (Google, GitHub) │
│ - JWT Token 机制,AccessToken 15min │
│ - RefreshToken 7天,支持 Rotation │
│ │
│ ### 接口契约 │
│ POST /api/auth/register │
│ POST /api/auth/login │
│ POST /api/auth/refresh │
│ POST /api/auth/logout │
│ │
│ ### 安全要求 │
│ - 密码 bcrypt, cost factor 12 │
│ - 登录失败 5 次锁定 15 分钟 │
│ - Token 签名算法 RS256 │
└─────────────────────────────────────┘
这一步的质量直接决定 AI 输出的质量。 模糊的输入 = 错误的输出。
核心能力:从"不完整的人话"中提取"完整的技术规格"。这需要你理解业务域、技术约束、和用户未说出口的隐含需求。
3. 质量守门员(Quality Gatekeeper)
做什么: 审查 AI 生成的所有产出,确保正确性、安全性、可维护性。
这是 SDD 模式下 最关键也最容易被低估 的角色:
css
AI 产出 你需要审查的维度
──────── ──────────────────
代码实现 → 逻辑正确性、边界条件、异常处理
数据库设计 → 索引合理性、范式/反范式权衡、数据一致性
API 设计 → RESTful 规范、幂等性、版本策略
安全实现 → OWASP Top 10、认证授权、数据脱敏
性能设计 → N+1 查询、缓存策略、并发控制
测试代码 → 覆盖率是否充分、是否测了边界、是否有价值
常见陷阱:
| AI 常犯的错误 | 后果 | 你需要做的 |
|---|---|---|
| 看起来对但逻辑有微妙 bug | 线上故障 | 逐行审查关键路径 |
| 过度设计(加了不需要的抽象层) | 维护成本暴增 | 砍掉不必要的复杂度 |
| 安全方面只做"一般水平" | 漏洞 | 用安全清单逐项检查 |
| 测试只走 happy path | 假的安全感 | 要求补充异常/边界测试 |
| 不理解业务上下文的硬编码 | 扩展性差 | 从业务角度审视可配置性 |
4. 上下文管理者(Context Curator)
做什么: 构建和维护 AI 能高效利用的知识库。
AI 的能力上限取决于它能获得的上下文质量。你需要:
sql
docs/
├── architecture/
│ ├── system-overview.md ← 系统全景图
│ ├── adr/ ← 架构决策记录
│ │ ├── 001-use-postgresql.md
│ │ ├── 002-event-driven.md
│ │ └── 003-jwt-over-session.md
│ └── c4-diagrams.md ← C4 架构图(Mermaid)
├── api/
│ └── openapi.yaml ← API 契约(AI 直接消费)
├── design/
│ ├── user-auth-sdd.md ← 模块级 SDD
│ ├── order-system-sdd.md
│ └── notification-sdd.md
└── conventions/
├── coding-standards.md ← 编码规范
├── git-workflow.md ← Git 工作流
└── error-handling.md ← 异常处理规范
你维护的文档不是写给人看的报告,而是 AI 的"工作记忆"。 文档越结构化、越精确,AI 的输出质量越高。
5. 集成协调者(Integration Orchestrator)
做什么: 确保各模块/服务之间能正确协作。
AI 擅长完成单个模块,但 跨模块/跨服务的集成 是它的弱点:
css
模块 A(AI 做的) 模块 B(AI 做的)
│ │
│ 接口契约匹配吗? │
│ 数据格式一致吗? │
│ 错误码约定统一吗? │
│ 事务边界清晰吗? │
└──────────┬───────────────┘
│
你来确保这里不出问题
具体职责:
- 接口联调:确保 A 的输出是 B 期望的输入
- 数据一致性:跨服务的数据最终一致性策略
- 故障传播:A 挂了对 B 的影响是什么,降级策略
- 端到端测试:单模块测试通过 ≠ 整体能跑
6. 风险评估者(Risk Assessor)
做什么: 识别 AI 无法感知的系统性风险。
| 风险类别 | AI 能识别? | 你需要做的 |
|---|---|---|
| 代码级 bug | ✅ 大部分能 | 审查边界条件 |
| 架构级缺陷 | ⚠️ 部分能 | 质疑 AI 的架构假设 |
| 业务逻辑风险 | ❌ 不能 | 用业务知识验证逻辑 |
| 合规风险 (GDPR/等保) | ⚠️ 知道规则但不知你的场景 | 结合具体业务场景判断 |
| 运维风险 (容量/成本) | ❌ 不能 | 结合实际流量/预算评估 |
| 组织风险 (人员变动/知识断层) | ❌ 不能 | 确保文档和代码可交接 |
总结:从"代码工人"到"技术 CEO"
┌──────────────────────────────────────────────────┐
│ 你(开发者) │
│ │
│ ┌─────────┐ ┌─────────┐ ┌─────────┐ │
│ │架构决策者│ │需求翻译官│ │质量守门员│ │
│ └─────────┘ └─────────┘ └─────────┘ │
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ │
│ │上下文管理 │ │集成协调者 │ │风险评估者 │ │
│ └──────────┘ └──────────┘ └──────────┘ │
│ │ │
│ ▼ │
│ ┌─────────────────┐ │
│ │ AI Agent 执行层 │ │
│ │ 编码/测试/文档/调试│ │
│ └─────────────────┘ │
└──────────────────────────────────────────────────┘
本质变化:你不再为"怎么实现"花时间,而是为"做什么"和"做对了没"负责。
SDD 就是你和 AI 之间的"合同"------你定义规格,AI 交付实现,你验收成果。你的价值在于:判断力、业务理解、架构品味、和对"足够好"的定义权。