新增功能:设计先行、小步实现、配套测试

所属教程:Claude Code 从入门到大师级完整教程 预计阅读:28 分钟

新增功能比修 Bug 更需要边界控制。推荐节奏是设计先行、小步实现、配套测试、对照验收,避免"边写边加需求"导致的大而失控的改动。

一、设计先行:先方案后代码

二、小步实现,每步可验证

  1. 先搭最小骨架:接口/函数签名、目录与类型契约,让整体结构先成立。
  2. 再按职责分块填充:核心路径 → 边界与错误处理 → 配套测试 → 文档与提示文案。
  3. 每完成一小步就运行可用的检查(测试、构建、静态检查),保持改动始终处于可运行状态。
  4. 一次提交聚焦一件事,避免把多个功能点混在一次大改动里。

三、给代理一个能自动判定的验收门

代理在没有可运行检查时,只能凭"看起来完成"收尾;提供测试、构建、lint 或可对比的输出后,它可以在同一轮里反复执行、读取结果并迭代直到通过。设计任务时建议明确:

四、完成前的对照检查

检查项确认要点
功能范围实现的内容与方案一致,未私自扩大需求
验收标准逐条对照,每条都有对应实现与证据
兼容影响既有行为、接口字段、配置格式未被破坏
错误处理非法输入、缺失依赖、失败分支有合理反馈
改动范围diff 聚焦本功能,无调试残留与无关重写
文档同步必要的使用说明、配置项与示例已更新

五、控制范围蔓延

实现过程中发现的新需求、优化建议应记录为后续任务,不在当前功能中夹带;若确需调整范围,先回到方案层面确认再改代码。发现方案与现实约束冲突时,先反馈取舍选项,而不是擅自改变设计。

六、小白照抄:一次功能交付的对话推进顺序

不依赖任何高级配置,按下面六个回合顺序与代理协作即可稳定完成一个小功能,每一步都有明确产出,避免一上来就让代理"直接写完":

  1. 回合 1 交代目标与约束:说明功能目的、目标用户场景、不能改动的既有行为、可用的测试与构建命令;要求先不要写实现代码。
  2. 回合 2 出方案:按 Shift+Tab 进入计划模式,请代理给出模块划分、改动文件清单、关键流程与验收标准;对模糊点逐条追问澄清。
  3. 回合 3 搭骨架:确认方案后先实现类型/函数签名与目录结构,运行一次构建确认骨架可编译、可运行。
  4. 回合 4 填主路径:按"核心逻辑 → 错误处理 → 边界输入"顺序实现,每完成一块就运行对应测试,保持改动可运行。
  5. 回合 5 补测试与自检:补齐正常、非法、边界三类用例;让代理展示测试命令与实际输出作为证据,再用 /review 或独立只读审查复核差异。
  6. 回合 6 对照验收清单收口:逐条核对第二节、第四节的检查项,确认无夹带改动、无调试残留、文档同步后,再由人工决定是否提交。
什么时候该用独立审查会话

功能涉及公共接口、共享状态或安全相关逻辑时,另开一个只读取 diff 的会话做新鲜视角审查(呼应第 14 章系统化审查);实现者自查容易受既定思路影响,独立审查更能发现遗漏。

七、常见问题 FAQ

问题处理建议
需求本身不清楚,代理一直追问怎么办先补输入来源、默认行为、错误处理与边界条件四项;仍无法确定时列出 2–3 个候选方案与取舍,由人裁决后再实现,不要让代理替人猜需求。
写了一半发现原方案行不通停止扩写,回到计划模式说明约束变化,给出替代方案与影响面,经确认后再改;避免在错误方向上持续堆代码。
测试没全绿但功能看起来正常以测试与构建结果为准,不接受"看起来对";先让代理解释失败用例与根因,区分是新功能破坏旧行为还是测试本身需要更新。
实现过程中冒出很多"顺手优化"记入待办清单,当前迭代只交付本功能;优化项另起任务,防止 diff 膨胀导致审查失控。
代理一次性改了十几个文件警惕范围失控;让它先输出改动文件与理由清单,按依赖关系拆成小步,分批验证后再合并。

八、动手练习

本节小结与下一节预告

本节掌握了功能交付的设计—实现—测试—验收闭环、分步对话流程与常见问题处理。下一节聚焦测试补充方法、提交前检查与规范提交说明写法。

← 上一节:修复 Bug:复现、定位、修复、回归  下一节:补充测试与规范提交说明 →

本教程目录

返回教程列表 · AI最前沿首页 · AI百科