规范驱动开发:最佳实践的回归
Source: Dev.to
Source: …
AI 驱动的 “Vibe Coding” —— 前景与陷阱
AI 已经彻底改变了开发者编写软件的方式。借助现代 AI 编码工具,开发者可以在几秒钟内生成大量代码。这一转变催生了许多人现在称之为 “vibe coding” 的现象。开发者写下简短的提示,让 AI 生成解决方案。
它确实有效——但也会失效,尤其是在团队规模庞大、软件工程最佳实践不可妥协的正式企业环境中。
为什么 Vibe Coding 是把双刃剑
- Vibe coding 代表了软件生成方式的最大变革之一。AI 能以惊人的速度产出大量代码。
- 最大的问题并不是 vibe coding 本身。
- 真正的关键在于开发者把 AI 当作魔杖,完全依赖快速提示,而忽视了通常能产生可靠软件的工程实践。
随着时间推移,许多开发者开始抛弃以下内容:
- 架构规划
- 用户故事和待办事项管理
- 验收标准
- 任务拆分
- 编码约定
- 测试策略
所有这些实践都有其存在的理由:它们提升了交付高质量产品的概率。
企业软件开发不仅仅是速度
企业软件开发从来不只是快速写代码。它在于构建能够被团队 维护、扩展和理解 的系统。
在真实的企业团队中,软件开发通常遵循 敏捷工作流:
- 将特性定义为用户故事
- 在迭代或冲刺中实现故事
- 每个故事都有验收标准
- 每个故事被拆分为技术任务
- 代码必须与现有架构集成
- 必须避免功能重复
当开发者仅依赖 vibe coding 时,这些防护措施往往会消失,导致:
- 技术债务
- 代码 spaghetti(乱成一团)
- 重复模块
- 架构不佳
- 难以维护的系统
Vibe coding 在快速生成代码方面表现出色,但如果取代结构化开发,它很容易引入长期问题。网络上关于 AI 生成令人印象深刻的代码,却迅速演变成混乱代码库的梗正好捕捉了这一问题——它们展示了在构建复杂企业级系统时使用 vibe coding 会发生的情况。
上下文限制问题
真实的软件项目是长期持续的工作。它们在多个迭代、发布和冲刺中不断演进。构建严肃的产品是 马拉松,而非短跑。
AI 对话会话有 上下文限制;它们无法记住数月开发过程中整个大型项目的全部历史。缺乏结构时,AI 很快会失去对以下内容的跟踪:
- 架构决策
- 已实现的特性
- 业务规则
- 系统约束
结果,代码质量开始下降。
Spec‑Driven Development – A Remedy
Spec‑driven development 是为使用 AI 构建专业、可扩展软件的开发者而设计的。它摒弃了随意的提示方式,转而引入结构化和规划。
在 spec‑driven 工作流中,与 AI “即兴合作”的乐趣和自发性被更传统的做法所取代:
- 书面需求
- 产品愿景
- 用户故事
- 验收标准
- 架构计划
- 测试和编码规范
换句话说,就是专业团队数十年来一直依赖的所有“枯燥”流程。
没有 Spec 会怎样?
在 spec‑driven 方法流行之前,许多开发者使用 AI 生成代码,却没有任何结构。结果往往是 一团破碎的代码,修复所需时间比生成代码的时间还长。
Spec‑driven development 引导 AI 代理表现得更像一名有纪律的高级开发者,而不是单纯的代码生成机器。它适用于可能需要数月才能完成的项目,在这些项目中,AI 必须保持对产品需求的上下文理解并跟踪开发进度。
工作原理
- 创建规范(“spec”)。 该 spec 成为 AI 的唯一真实来源。
- spec 通常包括:
- 高层次的应用概览
- 技术选型
- 架构约束
- 业务规则
- 实现指南
- AI 在该规范的边界内生成代码。
“spec” 这个词听起来可能让人望而生畏,但它仅仅意味着 为应用创建结构化的计划。
典型工作流
- 对产品、目标及主要组件的描述。
- 系统应如何组织以及模块之间的交互方式。
- 必须构建的功能,拆分为可管理的工作单元。
开发者不一定要手动编写所有这些内容。已有多个新兴框架帮助自动化此过程,包括:
- OpenSpec
- GitHub Speckit
- BMAD
这些工具帮助生成结构化的规范,同时让开发者负责审查和批准计划。
为什么 Spec‑Driven Development 很重要
Spec‑driven development 的真正价值并非仅在于改进 AI 提示,而在于该过程 迫使开发者在生成代码之前思考架构和设计。它还鼓励团队一次专注于一个功能,类似于实际的敏捷团队工作方式。
就像在 Scrum 中:
- 每段代码都对应一个待办事项。
- 每个故事都有完成定义(Definition of Done)。
- 每个任务都纳入计划迭代。
因此,Spec‑driven 工作流 映射了专业团队已有的软件构建方式。
核心洞见
规范驱动的开发让软件开发中那些无法外包——甚至是给 AI——的部分得以回归。
这些部分包括:
- 编码前的思考
- 定义产品愿景
- 确认需求
- 设计架构
- 确立完成定义
- 对于 独立开发者,规范充当思考框架。
- 对于 团队,它成为活的文档,捕捉对产品的共享理解。
AI 帮助生成代码,但 人类仍然负责思考。
当 Vibe 编码仍然闪耀
Vibe coding 仍然非常有用。它适用于:
- 原型构思
- 探索 API
- 快速实验
- 构建小工具
但在 企业环境 中,软件开发不仅仅是快速生成代码。采用规范驱动的严谨方法可确保 AI 生成的代码能够干净地集成到可持续、易维护的产品生态系统中。
Generating code at speed.
It’s about building systems that last.
And the practices that spec‑driven development reintroduces — planning, architecture, and shared documentation — exist for a reason.
AI may accelerate development, but good engineering discipline is still what keeps complex systems from collapsing.