从用例到生产

发布: (2026年3月14日 GMT+8 08:24)
13 分钟阅读
原文: Dev.to

Source: Dev.to

请提供您希望翻译的正文内容,我将按照要求保留源链接并翻译成简体中文。

介绍

当我在大学时,一有新项目的想法,我首先会打开 VS Code 并开始写代码。你是否熟悉这种情形?

问题在于我的项目毫无方向地增长,持续不断地更改,从不知道何时算是 “完成”,写出的代码两周后我自己都不懂,最终变成了一个再也没有继续的项目。以我的角度来看,这并不是技术能力的问题,因为我会做事;后来我明白这其实是 过程 的问题。

如果你刚踏入技术行业,遇到类似情况,也没关系,大家都是这么开始的。但有一种方式可能更适合你。

在本文中,我们将使用 Kiro 将一个想法从用例转化为可运行的代码。如果你是第一次接触 Kiro 并且想要更入门的内容,Ana Cunha 写了一篇入门指南,能作为起点。

为什么项目会失败

在我的经验中,许多项目并不是因为 代码差 而失败的。它们失败是因为我从未正确定义想要解决的问题。

想象一下,你想构建一个使用 AI 将你的简历与招聘信息进行对比并告诉你缺少什么的应用。
你从哪里开始?前端?数据库?还是与人工智能的集成?

在我的职业生涯的某个阶段,我曾是自由职业者,在那段经历中,我重新认识了软件工程课程的价值。我学到了一件改变我构建方式的事:代码不是起点,而是结果。在写下第一行代码之前,你需要先理解自己在构建什么以及为谁构建。

定义用例

用例只是对用户如何与系统交互的描述。可以把它想象成建筑师的蓝图:没有蓝图你不会建房子,同样在不了解要构建什么之前也不应该开始编码。

你需要的(实用版)

  1. 用户故事 – 用户想做什么以及原因。
  2. 验收标准 – 如何判断功能是否正常。
  3. 实体和关系 – 系统中存在哪些“事物”,以及它们如何关联。

示例:简历比较器

用户故事

作为 正在找工作的人,我想 上传我的 PDF 或文本格式简历,以便 系统能够分析并将其与职位招聘信息进行比较。

现在你已经知道几件事:

  • 需要支持 PDF 和文本。
  • 需要将职位描述作为第二个输入。
  • 结果是一次比较。

验收标准

#条件预期结果
1当用户上传 PDF 时系统必须 正确提取内容
2当用户尝试上传不支持的格式时系统必须 显示包含有效格式的错误信息

有了这些,你就知道 要构建什么 以及 何时算“完成”

从需求到代码:规范驱动开发(SDD)

规范驱动开发是一种先设计规范再实现的方式。它分为 四个阶段

  1. 捕获意图

    • 用自然语言定义你想要构建的内容(用户故事和验收标准)。
    • 目标是让任何人(技术人员或非技术人员)都能理解将要构建的东西。
  2. 将意图转化为系统蓝图

    • 将这些需求转化为技术设计:组件、通信方式、技术选型。
    • 这就是你的架构图。
  3. 生成工作单元

    • 将设计拆分为具体且增量的任务。
    • 每个任务都应当小而清晰,并产出可测试的可运行功能。
  4. 实现并验证

    • 编写代码。
    • 每个任务都要依据第一阶段定义的验收标准进行验证。

💡 注意: 该过程会在每次添加新功能时重复执行。

此方法不依赖任何特定工具;你可以使用文本文档、白板,甚至是一张餐巾纸。关键是 先思考再编码

Kiro 与 SDD 流程

Kiro 这样的工具实现了此方法论,并帮助你以结构化的方式遍历各阶段。Kiro 遵循一个 三阶段 流程 (1️⃣ requirements, 2️⃣ design, 3️⃣ tasks),直接映射我们刚才看到的内容。

SDD 阶段发生了什么在 Kiro 中
捕获意图用自然语言描述你的想法告诉 Kiro 你想构建什么
系统蓝图需求 + 设计 + 任务Kiro 生成 requirements.mddesign.mdtasks.md
工作单元执行任务在 IDE 中运行每个 task
实现与验证代码 + 验证Kiro 实现代码,你根据验收标准进行验证

💡 重要提示: AI 工具并不取代你的批判性思维;它们是对其的放大。关键不是为了记录而记录,而是 在编码前先思考。文档是这种思考的产物。

实践应用:简历比较器项目

下面,我们来看一下将此过程应用于简历比较器项目的实际效果。

用户故事和验收标准

与其用一个模糊的提示如 “帮我做一个简历应用” 打开 Kiro,我首先编写了一个包含已定义的用户故事和验收标准的文件:

  • 项目背景
  • 用户是谁
  • 需要完成的任务
  • 我们如何判断它已成功

文件示例:

# Ejemplo de archivo de historias de usuario
---
proyecto: "Generador de CV"
usuario: "Candidato a empleo"
historias:
  - id: HU-01
    descripción: "Como candidato, quiero crear mi CV a partir de un formulario sencillo para poder exportarlo en PDF."
    criterios_de_aceptación:
      - "El formulario debe incluir campos obligatorios: nombre, email, experiencia y educación."
      - "Al guardar, el CV se genera en formato PDF con el diseño seleccionado."
      - "El PDF debe descargarse automáticamente y también estar disponible en la cuenta del usuario."
  - id: HU-02
    descripción: "Como candidato, quiero previsualizar mi CV antes de descargarlo para asegurarme de que la información está correcta."
    criterios_de_aceptación:
      - "Debe mostrarse una vista previa en tiempo real mientras el usuario completa el formulario."
      - "La vista previa debe reflejar exactamente el diseño final del PDF."

注意: 这只是一个示例;请根据你的项目具体需求调整用户故事和验收标准。

项目背景

主要用户: 积极寻找工作的人
目标: 提升简历质量,以强化职业形象

故事 1 – 上传简历进行分析

作为 寻找工作的人
我想 上传我的简历(PDF 或文本格式)
以便 系统能够分析并将其与工作机会进行比较

验收标准

  • 用户上传 PDF 格式的简历文件时,系统必须 正确提取文档内容。
  • (在此添加其余验收标准…)

第2阶段 – 系统蓝图

根据用例,Kiro 生成了三个文档,构成项目的完整蓝图:

文档目的
requirements.md将用户故事展开为正式需求,包含术语表(例如 Brecha_CríticaGenerador_Recomendaciones),详细说明验收标准和技术需求(PDF 文本提取、结构化职位描述分析)。
design.md定义技术架构:图表、数据流(PDF → 浏览器 → IA),组件之间的接口(每个 Lambda 接收什么、返回什么)以及错误处理策略。
tasks.md将设计拆解为增量任务,关联每项任务对应实现的需求。包含清晰的子任务和执行顺序(基础设施 → 预签名 URL Lambda → PDF 提取 → 等)。

注: Kiro 最初为 Lambda 提议使用 Python,但团队更倾向于 Rust。Kiro 自动调整了架构、依赖和任务,以在后端使用 Rust。

结果架构

  • 前端: Astro(现代 Web 框架)。
  • 后端: 使用 Rust 的无服务器函数,部署在 AWS Lambda 上。
  • AI: 使用 Amazon Bedrock(生成式模型)进行简历分析。
  • 临时存储: Amazon S3

在编写第一行代码之前,一切已全部定义完毕。

步骤实现

  1. 创建 monorepo – Kiro 生成了项目结构。
  2. 初始化前端 – 配置 Astro。
  3. Rust 工作区 – 设置环境和依赖。
  4. SAM 模板 (template.yaml) – 为无服务器基础设施提供基础。

任务计划(共21项)

编号任务简要描述
1AWS 基础设施S3、Cognito、API Gateway、Lambda。
2Lambda → 预签名 URL生成用于上传简历的临时 URL。
3PDF 提取内容的解析和标准化。
4与 Bedrock 集成将文本发送给 AI 并接收结果。
5响应解析将 Bedrock 的输出转换为有用的数据。
20前端 – 结果页面显示匹配度和推荐。
21最终部署CI/CD 与发布。

每项任务都关联了它实现的需求,这使得团队随时能够明确 正在构建什么 以及 为什么 构建。

最终结果

一个功能性应用,用户:

  1. 上传简历(PDF 或文本)。
  2. 粘贴职位招聘信息
  3. 获取兼容性分析和改进领域列表。

所有内容均基于六个用户故事,写在一个文本文件中。

反思

花至少30分钟思考 构建什么,在决定 如何 实现之前,能节省之后的数小时挫败感。

如果这种方法对你有帮助,并且想讨论它在你项目中的应用,请在 LinkedIn 上找到我。

额外资源

  • Spec‑Driven Development – Kiro
  • Kiro 入门指南如何开始使用 Kiro:一步步教程 (Ana Cunha)
  • AWS Free Tier – 免费开始,无需花费。
0 浏览
Back to Blog

相关文章

阅读更多 »