DEV 轨道聚焦:规范驱动开发与 Kiro (DEV314)
Source: Dev.to
传统的 AI 编码助手已经彻底改变了我们的编码方式,但它们在处理复杂项目需求时常常捉襟见肘。典型的 “vibe coding” 工作流——开发者编写提示,AI 生成代码,然后循环往复——虽然适用于原型开发,却可能导致团队缺乏清晰的文档或对决策原因的理解。
Erik Hanchett(AWS 高级开发者倡导者)和 Nikhil Swaminathan(AWS 高级产品经理)在他们的 DEV314 会议中提出了一种不同的方法:使用 Kiro 的 规范驱动开发(spec‑driven development),Kiro 是 AWS 新推出的代理式 IDE,已在 re:Invent 2025 前几周正式面向公众发布。
“发生的根本性转变在于,以前是开发者驱动并提供需求,而使用 AI 编辑器时,开发者引导 AI 代理来编写和审查代码。开发者仍然坐在驾驶座上,只是工作流不同了。” – Nikhil Swaminathan
观看完整会议
▶️ 在 YouTube 上观看完整会议 (链接占位符)
从 Vibe 编码到规范驱动开发的演进
Vibe 编码在过去一年里变得异常流行,使开发者能够在数小时内原型化原本需要数周才能完成的应用程序。然而,这种方法也面临着重大挑战。Nikhil 用了一个恰当的类比:
“Slack 线程。我们都曾在 Slack 对话中看到消息线程延伸到 100 条信息。你离开那个线程时会想,‘好吧,我们得出了什么结论?我们为什么要做出这些决定?’而这些往往就在那个上下文中丢失了。”
问题
Vibe 编码 完全跳过 传统的软件开发生命周期。历史上,团队总是从文档——需求文档、设计文档、权衡讨论——开始,无论是采用瀑布模型(Waterfall)还是敏捷方法(Agile)。
在与亚马逊内部以及外部的核心用户交流后,Kiro 团队发现,成功的开发者已经自发地转向在生成代码之前进行规划。这一洞察促使 Kiro 将 规范驱动开发(spec‑driven development)构建为其一方工作流。
规范驱动开发工作流
| 阶段 | 描述 |
|---|---|
| 需求 | 从用户故事和验收标准开始。Kiro 使用 EARS 格式(Easy Approach to Requirements Syntax),将需求结构化为 “当你执行 X 时,系统应执行 Y”。该格式在后续工作流中支持形式化推理和基于属性的测试。 |
| 设计 | 根据需求和现有代码库生成完整的设计文档。设计包括高级架构(使用 Mermaid 图表)、组件接口、数据模型和实现细节。 |
| 任务列表 | 将设计拆分为具体可实现的任务。你可以细化列表、重新排序任务以优先实现 MVP,或将某些任务(例如全面测试)标记为可选,以更快看到结果。 |
| 实现 | 逐个或批量执行任务。Kiro 跟踪进度,标记已完成的任务,甚至可以根据你途中所做的更改更新剩余任务。 |
| 迭代检查点 | 在任何阶段,你都可以对进度进行检查点保存,并在 AI 偏离轨道时恢复到之前的状态。通过 “Refine” 按钮,手动编辑会重新整合回文档中。 |
演示:构建求职面试准备应用
Erik 和 Nikhil 通过从零开始构建求职面试准备应用,演示了完整的工作流程。仅凭一个 Figma 图示,他们创建了一个能够:
- 展示面试问题(行为、技术和领导力)
- 使用 Web Audio API 录制音频回答
- 实时将语音转录为文本
- 使用 Claude AI SDK 分析回答
- 提供定性反馈和定量评分
迭代开发
当最初的需求中没有音频转录或 AI 驱动的分析时,他们只需让 Kiro 添加这些功能。IDE 会自动更新需求和设计文档,以保持一致性。
“这里有一个产品类比。当你在造车时,先从滑板开始,然后是自行车,最后才是汽车。构建产品的更好方式是先做中间步骤,这样你总会有一个可用的东西。” – Nikhil Swaminathan
基于属性的测试
Kiro 最具创新性的功能之一是 自动生成基于属性的测试。与输入受限的传统单元测试不同,基于属性的测试(使用 fast‑check 等框架)会对大量值进行模糊测试,从而提供更有力的证据,证明你的代码能够正确运行。
EARS 格式使得这一能力成为可能:因为需求是逻辑陈述,Kiro 可以提取属性并生成测试,验证这些属性在所有执行过程中都成立。
Erik 在一个棋类应用中演示了这一点,展示了 100 多次 使用随机输入运行的测试,以确保走棋的验证是正确的。
“添加这些基于属性的测试可以显著提升代码输出的质量,并且通常会减少 bug 的数量。” – Erik Hanchett
Hooks: 生命周期自动化
Kiro 引入了 hooks——在特定生命周期事件触发的自动化流程。Hooks 可以配置在诸如 文件保存、文件创建 等事件上运行(更多事件即将推出)。
示例用例
- 文档更新 – 当文件更改时自动更新文档。
- 风格与语气检查 – 对文档进行拼写、语气和风格检查。
- 组件验证 – 确保 React 组件遵循单一职责原则。
- 本地化 – 内容更改时自动生成翻译。
“与其仅仅生成大量没有审查流程的代码,我们将质量检查直接嵌入开发生命周期中。” – Nikhil Swaminathan
摘要
基于规范的开发方法(Spec‑driven development)与 Kiro 相结合,弥合了快速 AI 辅助编码与严谨软件工程之间的鸿沟。通过结构化需求(EARS)、生成设计文档、管理任务以及自动化测试和文档编写,团队可以:
- 快速交付 可工作的 MVP
- 保持 清晰、最新的文档
- 通过基于属性的测试降低 缺陷
- 通过钩子(hooks)实施 质量门
其结果是一个更 可预测、透明、且 高质量 的开发过程——同时不牺牲 AI 编码助手带来的速度。
超越规范工作流,Kiro 提供额外功能
Agent Steering
- 创建 rules files,指定编码标准、设计模式或架构约束。
- Kiro 可以自动从现有代码库生成这些规则,确保在构建新功能时保持一致性。
MCP (Model Context Protocol) 服务器
- 集成外部工具和数据源。
- AWS 为 Bedrock 等服务提供众多 MCP 服务器,并提供一个综合文档服务器作为通用入口。
- Kiro 最近新增了 one‑click installation 用于 MCP 服务器。
结构化工作流优于 Vibe 编码,适用于复杂项目
- Vibe coding 适合快速原型,但 spec‑driven development 能提供文档、审计轨迹和生产应用所需的清晰度。
前期规划提升 AI 输出
- 在生成代码前花时间细化需求和设计,帮助 AI 模型聚焦并产出更好的结果。
每个阶段都进行迭代
- 你并非被初始决定锁定。
- 在工作流中随时细化需求、更新设计、重新排序任务并检查进度。
基于属性的测试提升质量
- 自动生成的属性测试相较于传统单元测试,能更有力地保证代码符合需求。
通过 Hook 实现自动化
- 设置 quality gates,自动运行,提前捕获问题。
开发者保持控制权
- 正如 Nikhil 强调的,开发者引导 AI 代理并对代码负责。
- 规范驱动的开发使这种引导更为高效。
关于此帖子
此帖子是 DEV Track Spotlight 系列的一部分,旨在突出 AWS re:Invent 2025 开发者社区(DEV)轨道 中的精彩议程。
DEV 轨道概览
- 60 场独特议程 由 93 位演讲者 主持,涵盖 AWS 社区成员——包括 AWS Heroes、AWS Community Builders 和 AWS 用户组领袖——以及来自 AWS 与 Amazon 的演讲者。
- 议题涉及前沿领域,例如:
| Category | Highlights |
|---|---|
| 🤖 GenAI & Agentic AI | Multi‑agent systems, Strands Agents SDK, Amazon Bedrock |
| 🛠️ Developer Tools | Kiro, Kiro CLI, Amazon Q Developer, AI‑driven development |
| 🔒 Security | AI agent security, container security, automated remediation |
| 🏗️ Infrastructure | Serverless, containers, edge computing, observability |
| ⚡ Modernization | Legacy app transformation, CI/CD, feature flags |
| 📊 Data | Amazon Aurora DSQL, real‑time processing, vector databases |
本系列的每篇文章都会深入剖析一场议程,分享关键洞见、实用收获以及完整录播链接。无论你是现场参加 re:Invent,还是远程追看,这些议程都代表了我们开发者社区 真实代码、真实演示、真实学习 的最佳成果。
请持续关注,我们将聚焦这些精彩议程,并致敬让 DEV 轨道如此出色的演讲者们!