什么是规格驱动开发?
大多数 AI 编程的起步方式都一样。你给智能体(agent)一个简短的提示词。你看着它写代码。看起来很快。然后你意识到智能体做错了东西。你花了一个小时去修复它。
智能体并不难写代码,它难的是理解你的意图。
规格驱动开发(Spec-driven development)解决了这个问题。与其直接提示写代码,不如先创建一个规格(spec)。这个规格是一份书面计划。你不断修正计划,直到它正确为止。只有在那之后,你才让智能体开始构建。
像 AWS Kiro 和 GitHub spec-kit 这样新工具让这一切变得简单。但这个理念并不新鲜,它只是良好的工程实践。
一个好的规格包含三个部分:
• 需求 (Requirements):功能的作用以及如何衡量成功。这描述的是行为,而不是代码。 • 设计 (Design):技术方案。这包括架构、数据模型和约束条件。 • 任务 (Tasks):细小的、可测试的单元。它们足够简单,可以让智能体一次性完成。
每个部分都为下一部分提供输入。需求指导设计,设计创建任务,任务指导智能体。
过去,写代码很慢。写规格感觉是在浪费时间。现在,AI 可以在几分钟内写完代码。瓶颈不再是打字,而是决定到底要构建什么。
规格将你的错误转移到了一个低成本的地方。文档中的一个错句很容易修改,而代码库中的一个错误实现却很难撤销。
代码审查很难。你必须逆向工程去理解作者的意图。审查规格则很容易。在任何代码存在之前,你们就已经就意图达成了一致。
这种方法还能帮助你实现规模化。你可以将不同的任务交给不同的智能体。规格充当了保持它们步调一致的契约。
这种方法并不总是万能的。
- 对于小的修复来说,这太繁琐了。不要为一行代码的改动去写规格。
- 规格可能会过时。如果代码更改了但规格没有更新,规格就会变成谎言。
- 智能体并不总是听话。规格可以减少困惑,但你仍然必须审查输出结果。
使用规格来明确你的意图。利用它在错误还只是文字时就将其捕捉。
Source: https://dev.to/jcamarate/what-is-spec-driven-development-with-ai-coding-agents-56mc
Optional learning community: https://t.me/GyaanSetuAi