AI 写了 500 行代码,上线后发现漏了 3 个接口、2 个路由、1 个菜单 —— 这套方法论让这种事再也没发生过

📅 2026/7/2 4:33:38
AI 写了 500 行代码,上线后发现漏了 3 个接口、2 个路由、1 个菜单 —— 这套方法论让这种事再也没发生过
SEO摘要本文分享了一套经过实战验证的五阶段AI辅助开发方法论旨在解决AI编码工具如Claude Code、Cursor、Copilot在项目开发中常见的功能不完整问题。通过建立规则护栏、垂直切片开发、强制编译验证和定期审计复盘等系统性方法确保AI产出的每个功能都是完整可运行的显著提升开发效率与代码质量。这套方法将帮助开发者从逐行检查AI代码转变为只验收功能清单实现质的飞跃。技术关键词AI辅助开发、功能完整性、垂直切片开发、编译验证、跨会话记忆管理不是 AI 不行是你没给它装上护栏。去年我用 AI 编码助手做了一个完整项目功能上线那天测试同事在群里说“登录页能打开但 Dashboard 是 404。”我切到代码一看AI 写了后端 API、写了前端页面但忘了在路由文件里注册这个页面。这已经不是第一次了。之前还出现过后端接口写好了前端没有对应的调用函数前端组件写好了侧边栏没有添加入口甚至有一次AI 写了一个功能完整的页面打开一看全是// TODO占位符。这些问题都有一个共同特征单独看每个文件都没问题合在一起就是缺胳膊少腿。我开始反思不是 AI 不行是我的工作方式出问题了。我把 AI 当成了写代码的而不是完成功能的。我给了它代码的上下文但没给它完整性的标准。经过一个完整项目的实战复盘我总结出了一套五阶段方法论。这套方法的核心理念只有一句话让 AI 产出的每个功能都是完整的、可验证的、不遗漏的。下面我把它完整分享出来。如果你也在用 Claude Code、Cursor、Copilot 等 AI 编码工具这套方法可以直接照搬。五阶段闭环总览五个阶段不是一次性的而是每个功能循环一次。做完一个功能回到阶段 2 拆下一个需求。阶段 1项目初始化 —— 在写第一行业务代码之前先把交规定好大多数人打开 AI 编码工具后的第一件事是“帮我建一个 Vue 项目”。这是错的。正确的第一步创建三样东西 —— SPEC.md功能规格书、AI 行为规则文件、TODO.md验收清单。1.1 SPEC.md —— 功能的唯一真相来源在design-doc/SPEC.md里用表格列出三张清单页面名路由核心功能权限登录/login用户名密码登录公开Dashboard/数据概览卡片全部角色用户管理/users增删改查用户仅管理员方法路径说明对应页面POST/api/auth/login登录登录页GET/api/users用户列表用户管理关键原则规格文档中每一行页面都必须对应一个前端 View 文件每一行API都必须对应一个前端调用函数。这是后续所有验收的唯一依据。1.2 AI 行为规则文件 —— 5 条硬约束在项目根目录创建CLAUDE.md或.cursorrules取决于你用的工具写入以下 5 条规则功能完整性闭环任何功能必须包含数据层、后端 API、前端 API 封装、前端 UI 页面、路由注册、导航入口、编译通过缺一视为未完成。任务清单驱动开始任务前先读 TODO.md完成后标记对应项为 [x]。编译验证强制执行每次改动后必须运行编译检查失败当场修复。禁止占位符严禁// TODO、空函数体、“implement later” 等半成品。重用已有基建编码前先搜索项目中是否有可复用的工具函数或组件。这 5 条规则是我踩坑踩出来的。没有它们AI 会倾向于写出看起来对的代码而不是写出完整可运行的功能。1.3 TODO.md —— 跨会话的持久记忆AI 的最大短板是什么跨会话记忆丢失。每次开新对话它对项目的记忆就清空了。解决方法是用 TODO.md 做外挂记忆。把 SPEC.md 中的每个功能点转化为可勾选的清单## P1. 用户管理 - [ ] 后端GET /api/users Handler 路由注册 - [ ] 后端POST /api/users Handler 路由注册 - [ ] 前端api/user.ts 中声明 listUsers / createUser / deleteUser - [ ] 前端UserManageView.vue 页面 - [ ] 前端router/index.ts 注册 /users 路由 - [ ] 前端侧边栏增加用户管理菜单 - [ ] 编译验证通过 ## 后端 API ↔ 前端调用 对照表 | 后端路由 | 前端函数 | 前端 UI | 状态 | | GET /api/users | listUsers() | UserManageView | ✅ | | POST /api/users | createUser() | UserManageView | ✅ |对照表是防遗漏的核心武器。它用一张表暴露出后端有接口但前端没调用或前端有函数但没有 UI 使用的断裂点。下面是项目初始化阶段三件套的关系图它们共同构成了 AI 开发的规则护栏阶段 2需求拆解 —— 垂直切片不是水平分层传统开发习惯是先把所有 API 写完再把所有页面写完最后一起联调。在 AI 辅助开发里这是灾难。正确做法是垂直切片一个功能的全部层次API 页面 路由 菜单在一个对话中一次性完成。给 AI 的任务模板应该是这样的请实现用户管理功能要求后端新增 handler/user.go实现 List/Create/Delete后端注册 GET/POST/DELETE /api/users 路由前端api/user.ts 中声明对应函数前端新建 UserManageView.vue前端注册 /users 路由前端侧边栏添加菜单入口完成后运行编译检查确保 0 errors更新 TODO.md将对应子项标记为 [x]请严格按顺序逐步完成不要跳过任何步骤。关键技巧最后一步必须要求 AI 更新 TODO.md。这会强制它回头检查自己是否真的完成了所有子项。下面是垂直切片与水平分层的对比直观展示为什么垂直切片更适合 AI 辅助开发阶段 3增量开发 —— 一次一个功能别贪多你可能会想“AI 速度这么快一次让它做 5 个功能不是更高效吗”实测结果后面的功能越做越粗糙遗漏越来越多。因为 AI 的上下文窗口有限做多个功能时会丢失前面功能的细节。铁律一次对话只做一个完整功能。另外在 AI 动手写代码之前先让它列出改动计划在写代码之前请先列出你打算修改或新建的所有文件清单以及每个文件的改动内容摘要。等我确认后再开始编码。这样你可以在编码前就发现遗漏——比如 AI 列了 5 个文件但忘了router/index.ts。阶段 4编译验证 —— 别把编译错误留到明天很多开发者习惯先写完最后一起编译——这在 AI 辅助开发里是定时炸弹。因为 AI 产出的代码量远超手写一个对话可能生成几百行。如果编译错误堆积起来后期修复的难度指数级上升。做法每次 AI 写完代码后立即要求它运行编译检查。如果有报错必须在当前对话中修复不要留给你。这不是可选项是门禁。阶段 5审计复盘 —— 每周一次的全面体检前四个阶段解决了单个功能不遗漏的问题但当你做了 5 个、10 个功能后功能之间的遗漏仍然可能发生。每周一次开启一个新对话给 AI 以下审计指令扫描所有后端路由扫描所有前端 API 函数扫描所有 View 组件扫描所有前端路由注册扫描所有侧边栏菜单项交叉对照以上 5 份清单找出差异并输出报告。同时检查设计漂移SPEC.md 中的规划 vs 实际代码实现看是否有人悄悄改了设计没更新文档。反模式清单这些坑我帮你踩过了反模式后果正确做法一次性让 AI 做 5 个功能后面的功能越做越粗糙一次一个做完验证再做下一个只给 AI 看代码不给规则AI 不知道完整性的标准创建 AGENTS.md / CLAUDE.md不运行编译检查堆积大量类型错误后期难修每次改动后强制编译不维护 TODO.mdAI 每次都忘记上次做到哪TODO.md 作为跨会话外挂记忆让 AI 先写所有 API 再写所有 UIAPI 和 UI 脱节对不上垂直切片一个功能贯穿所有层接受// TODO占位符半成品永远不会被补全规则文件中明令禁止项目脚手架速查一个 AI 友好的项目文件结构长这样project-root/ ├── CLAUDE.md ← AI 行为规则5 条硬约束 ├── TODO.md ← 验收清单 API↔UI 对照表 ├── design-doc/ │ └── SPEC.md ← 功能规格书页面 API 数据模型 ├── backend/... └── frontend/...写在最后这套方法论的底层逻辑其实很简单AI 不是你的替代品AI 是你的加速器。加速器不会帮你选择方向它只会让你在已经选好的方向上跑得更快。如果你不给它设定完整的标准、明确的路径、自动化的检查机制它就只会产出看起来漂亮但不完整的代码。建立规则护栏本质上是在给 AI降熵——把模糊的帮我做个功能变成确定的请完成以下 8 个步骤并验证每一项。一旦跑通这套流程你会发现自己从AI 产出的代码我都要检查一遍变成了我只检查验收清单上的勾有没有打满。这是质的飞跃。适用工具Claude Code、Cursor、Copilot、Antigravity、OpenCode 等所有 AI 编码助手。来源基于 Summoner Rift 项目完整开发周期的实战复盘。试用建议先在一个小功能上跑通整个五阶段流程感受不漏的踏实感再推广到全部开发。如果你觉得有用欢迎转发给也在用 AI 写代码的同事。踩过的坑分享出来才不算白踩。