
这才是本文最重要的部分。 Vibe Coding和SDD不是二选一而是可以根据项目阶段交替使用。以下是我在实践中总结的组合策略。5.1 三阶段混合工作流阶段三Spec 驱动实施阶段二Spec 固化阶段一Vibe 探索不对对了 模糊想法 Vibe Coding快速出原型 体验 验证可行性 方向对吗 沉淀为Spec草稿 完善Spec AI评审Spec 补充边界条件 团队Review✅ Spec定稿 生成测试 生成实现 验证 部署 迭代更新Spec阶段一Vibe 探索快速试错这个阶段的目标是验证想法的可行性不是写出完美代码。用Vibe Coding快速搭建MVP大胆尝试不同的技术路线不要纠结代码质量——这段代码大概率会被重写把重点放在这样做的用户体验对吗“而不是代码写得优雅吗”产出物一个能跑的原型 对需求的初步理解阶段二Spec 固化沉淀共识一旦确认方向正确立刻刹车转入Spec模式。把探索阶段积累的理解整理成结构化的Spec让AI帮你Review把Spec发给AI让它指出模糊之处团队ReviewSpec是团队的共同语言必须达成共识特别关注边界条件错误处理、降级策略、性能约束、安全要求产出物一份经过Review的Spec文件建议放在项目仓库的/specs/目录下阶段三Spec 驱动实施严谨交付先让AI根据Spec生成测试用例TDD SDD的组合拳再让AI生成实现代码用Spec验证产出跑测试、做Code Review、对照Spec逐条检查随着需求变化先更新Spec再更新代码——保持Spec永远是唯一可信来源产出物可交付的代码 测试 文档Spec本身就是文档5.2 “Vibe中写Spec”——反向操作另一个非常实用的技巧是用Vibe Coding的方式来帮你写Spec。比如你想做一个支付模块自己不确定要考虑哪些边界条件直接把需求丢给AI你我准备做一个支付模块的Spec帮我brainstorm一下需要考虑哪些方面特别是容易遗漏的边界条件AI列出几十个要点包括幂等性、回调重试、分布式事务、对账、退款流程……你很好基于这些帮我生成一份初始Spec草稿。Vibe Coding负责发散SDD负责收敛。 这个组合非常强大。5.3 按模块粒度灵活切换不是整个项目只能选择一种范式。同一个项目里可以按模块粒度灵活切换项目/├── specs/│ ├── user-auth.spec.md ← SDD安全敏感边界条件多│ ├── payment.spec.md ← SDD金融合规不能出错│ └── recommendation.spec.md ← SDD算法行为需要精确控制├── src/│ ├── admin-dashboard/ ← Vibe Coding内部工具快速迭代│ ├── analytics-reports/ ← Vibe Coding探索性需求频繁变化│ └── landing-page/ ← Vibe Coding营销页面视觉驱动判断标准问自己如果这个模块出bug影响有多大影响小 → Vibe Coding影响大 → SDD5.4 Spec 的恰到好处原则SDD最大的陷阱是过度规约Over-Specification。记住Spec不是写作文不需要面面俱到。它只需要定义做什么和不做什么的边界。好的Spec像篱笆划定边界而非规划每一寸土地。Spec层级 包含内容 示例必须 API契约、数据模型、安全约束、降级策略 “同一IP每分钟限流10次”建议 推荐的技术方案、性能目标 “P99 200ms缓存TTL 30分钟”避免 具体实现细节、类结构、内部算法 “使用工厂模式创建PaymentProcessor”当发现自己在Spec里写请使用XXX设计模式时停笔。那是AI该操心的事情。六、给团队的实践路线图如果你所在的团队正在引入AI编程以下是一个循序渐进的路线图第一步从Vibe Coding开始第1-2周让团队成员先用Vibe Coding的方式感受AI编程的魅力。建立对AI能力的直觉什么它能做好什么它容易搞砸。第二步引入轻量Spec第3-4周选一个中等复杂度的模块尝试写一份Spec再让AI实现。对比一下Vibe Coding的产出和SDD的产出让团队自己感受到差异。第三步建立Spec模板与规范第5-8周沉淀团队的Spec模板明确什么该写、什么不该写。把Spec文件纳入代码仓库和代码一起做版本管理。第四步将Spec融入CI/CD第9周起Spec变更 → 自动触发AI评审代码提交 → 自动检查是否符合SpecSpec文件成为Code Review的必备输入关键原则Spec是唯一可信来源。任何时候Spec和代码有冲突先对齐Spec。先Spec后代码。需求变更时先改Spec再让AI重新生成。Vibe探索Spec交付。用Vibe Coding找到方向用SDD确保质量。不做过度规约。Spec定义行为边界不是替代AI思考。七、结语回到文章开头的问题当代码可以像聊天一样生成我们还需要规格说明吗需要比以往任何时候都需要。