主题
11.2 从零构建全栈功能
Plan → Implement → Verify 全链路,一个可复制的功能开发流程。
读完你能做什么:把"实现一个功能"变成一条有检查点、有验证、防跑偏的标准流水线。
核心结构
text
Plan(规划)→ 人工确认 → Implement(实现)→ Verify(验证)→ 交付
↑只读 ↑关键 ↑TDD ↑真实运行三个阶段各有各的模式和防线。
阶段 1:Plan(只读规划)
先在只读模式对齐方案,不写一行代码。
text
> /plantext
<task>
实现"用户可以导出自己的订单为 PDF"功能。
</task>
<instructions>
先不要写代码。给我一个完整方案:
1. 涉及哪些层的改动(前端、API、服务、数据)
2. 每层具体改什么文件、加什么
3. 需要的新依赖(如果有,说明为什么必须引入)
4. 边界情况(无订单、订单极多、并发导出)
5. 测试计划
6. 分几个可独立提交的步骤
</instructions>
<constraints>
- 复用现有的 PDF 生成能力(如果有),不要引入新库除非必要
- 导出是异步的,不能阻塞请求
</constraints>关键:人工审阅方案
方案是最高杠杆的介入点。审阅时重点看:
- 它有没有理解对需求
- 有没有引入不必要的复杂度
- 边界情况考虑全了吗
- 分步是否合理
不满意就迭代方案,不要带着有问题的方案进入实现。
阶段 2:Implement(TDD 实现)
方案确认后,切到执行模式,按 TDD 走:
text
现在按方案实现,遵循 TDD:
1. 每个步骤先写测试,覆盖方案里列的边界情况
2. 先让我审阅测试用例
3. 确认后实现,进入自修复循环(最多 5 轮)
4. 每个步骤一个独立 commit
<anti_cheat>
禁止改断言迁就实现、禁止 skip 测试、禁止硬编码。
每次修改说清"为什么这能修复根因"。
</anti_cheat>防作弊约束至关重要,完整版见 06.2。
分步实现,逐步提交
text
按方案的步骤逐个实现,每个步骤:
- 完成后跑测试确认
- 独立 commit
- 告诉我这一步做完了,我确认后再下一步
不要一口气做完所有步骤,我要在中间检查点介入。阶段 3:Verify(真实验证)
测试通过 ≠ 功能可用。 让它实际运行验证:
text
> /verify或手动:
text
实现完成后,不要只依赖单元测试。实际验证:
1. 启动服务
2. 走一遍真实用户路径:登录 → 有订单的账号 → 点导出 → 检查生成的 PDF
3. 验证边界:无订单的账号导出会怎样?
4. 把实际的验证过程和结果告诉我(截图/输出/生成的文件)/verify 和 /run 会真的构建、启动、驱动你的 app(见 06.2)。
阶段 4:交付
text
> 走完整的提交流程:
- 确认所有测试通过(贴输出)
- 生成规范的 commit(如果还没提交)
- 推送分支,创建 draft PR
- PR 描述包含:功能说明、测试情况、需要 reviewer 注意的点
- 把 PR 链接给我完整的一次性提示词模板
如果你想一次性给出全流程(适合成熟的项目):
text
<task>
实现"订单导出 PDF"功能。
</task>
<workflow>
严格分四阶段,每阶段之间停下来让我确认:
阶段 1 · 规划:给出完整方案(改动范围、步骤、边界、测试计划),等我确认
阶段 2 · 测试:写测试,等我审阅
阶段 3 · 实现:逐步实现,每步一个 commit,进自修复循环
阶段 4 · 验证:实际运行验证真实用户路径,贴出结果
</workflow>
<constraints>
- 复用现有 PDF 能力,非必要不加新依赖
- 导出异步,不阻塞请求
</constraints>
<anti_cheat>
禁止改断言/skip 测试/硬编码来让测试通过。
</anti_cheat>
<completion>
完成标准:测试全过(贴输出)+ 真实路径验证通过 + PR 已创建。
三条都满足才算完成。
</completion>防跑偏的检查点设计
功能开发最容易在中途跑偏。设置检查点:
| 检查点 | 位置 | 作用 |
|---|---|---|
| 方案确认 | Plan 之后 | 防止实现错误的东西 |
| 测试审阅 | 写测试之后 | 测试定义了"正确" |
| 分步确认 | 每步之后 | 及时发现偏差 |
| 验证 | 实现之后 | 确保真的可用 |
常见错误
| 错误 | 后果 | 对策 |
|---|---|---|
| 跳过 Plan 直接写 | 实现了错的东西 | 先规划后确认 |
| 不审阅测试 | 测试本身就错 | Plan 后审测试 |
| 一口气实现完 | 中途偏差难定位 | 分步 + 检查点 |
| 只信单测 | 功能实际不可用 | Verify 真实运行 |
| 没有完成标准 | 它过早说"完成" | 给可验证标准 |