DEV 轨道聚焦:规范驱动开发与 Kiro (DEV314)

发布: (2025年12月18日 GMT+8 23:08)
12 分钟阅读
原文: Dev.to

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 的演讲者。
  • 议题涉及前沿领域,例如:
CategoryHighlights
🤖 GenAI & Agentic AIMulti‑agent systems, Strands Agents SDK, Amazon Bedrock
🛠️ Developer ToolsKiro, Kiro CLI, Amazon Q Developer, AI‑driven development
🔒 SecurityAI agent security, container security, automated remediation
🏗️ InfrastructureServerless, containers, edge computing, observability
ModernizationLegacy app transformation, CI/CD, feature flags
📊 DataAmazon Aurora DSQL, real‑time processing, vector databases

本系列的每篇文章都会深入剖析一场议程,分享关键洞见、实用收获以及完整录播链接。无论你是现场参加 re:Invent,还是远程追看,这些议程都代表了我们开发者社区 真实代码、真实演示、真实学习 的最佳成果。

请持续关注,我们将聚焦这些精彩议程,并致敬让 DEV 轨道如此出色的演讲者们!

Back to Blog

相关文章

阅读更多 »