"帮我做一个电商系统"——AI 会给你 2000 行代码,然后你们俩都不知道从哪开始改。
AI 编程助手的一个特性让人很容易掉坑:你说什么它都敢接。 "帮我做一个完整的用户系统"——它不会说"太大了,先拆一下",它会直接给你 1500 行代码。
然后你看着 1500 行代码,不知道从哪开始验证、不知道核心决策在哪、不知道改了其中一个函数会影响什么。
这不是 AI 的问题,是你的需求粒度问题。 AI 给了你一个大象。你需要的是把大象切成牛排。
# ❌ 一上来要全量
你:帮我做一个用户系统(注册、登录、找回密码、权限管理、角色系统、审计日志)
# ✅ 先做最简通路
你:帮我做一个最小用户系统。
只有注册和登录。注册只需邮箱+密码。登录返回一个 token。
没有权限、没有角色、没有找回密码、没有审计。
把这个当作地基,后续在上面加。最简通路的定义:这个系统能跑通的、最小的功能集合。 可能只有 80 行代码,但它是一个完整可运行的东西。
为什么这很重要?因为:
如果你上来就看 1500 行,你可能要到第 800 行才发现架构方向有问题。 而在第 800 行发现问题 = 前面 800 行基本白写。
# 第一层:地基(20 分钟)
你:用户注册和登录,最小实现
AI:[80 行]
你:review,确认架构方向 OK
# 第二层:异常处理(10 分钟)
你:给注册和登录加异常处理——邮箱重复、密码太短、邮箱格式错误
AI:[增加 40 行]
你:review
# 第三层:安全(10 分钟)
你:密码加 bcrypt 哈希,登录加失败次数限制(5 次锁定 15 分钟)
AI:[增加 30 行]
你:review
# 第四层:周边功能(15 分钟)
你:加密码重置(发邮件)、加邮箱验证
AI:[增加 60 行]
你:review每一层只做一件事,每一层都 review。 这和你自己写代码的节奏一样——你不会一口气写完所有功能再测试,你会写一点测一点。
# ❌ 这些交付物无法验证
你:重构用户模块
AI:[200 行改动]
你:...这 200 行改了什么?哪些是结构调整,哪些是逻辑修改?
# ✅ 每层有明确的验证标准
你:把用户模块的数据库操作抽到独立文件,不改变任何业务逻辑。
验证方式:跑现有的用户模块测试,全部通过即成功。
AI:[抽出 50 行到新文件]
你:跑测试 → 全过 → 确认,下一层每层都要回答"我怎么知道这层做好了"。 如果说不出来,这层太大了,继续拆。
AI 最容易让你偏离渐进式的地方:你在让 AI 做一件事,它顺手多做了两件。
你:给注册接口加邮箱格式校验
AI:[加了邮箱校验 + 顺便重构了参数解析 + 顺便加了日志]
# 你本来只想验证"邮箱格式校验是否生效"
# 现在你得同时验证三个改动给 AI 加一条规则:严格执行当前层的任务,不要做未要求的事。 这个规则写在 SOUL.md 里:
## 执行纪律
每次只做当前层级的任务。不做以下事:
- 不重构未涉及的代码
- 不加未要求的日志或错误处理
- 不改与当前任务无关的变量名或函数名
原因:每次改动必须可以独立验证。混合改动 = 无法定位问题。一个经验法则:
def right_size(task):
# 输出量
if expected_lines_of_code > 150:
return "太大,继续拆"
# 修改范围
if files_to_modify > 3:
return "太大,继续拆"
# 验证时间
if time_to_verify > 5_minutes:
return "太大,继续拆"
# 决策数量
if design_decisions_required > 2:
return "太大,决策太多,先做决策再执行"
return "合适"150 行以内、3 个文件以内、5 分钟能验证完、最多 2 个设计决策——这是一个"合适的一口"。
"我先想清楚完整架构,再让 AI 开工。"
这个想法看起来合理,但有一个致命 bug:你不可能在动手前想清楚完整架构。 架构是在做每一层时逐渐清晰的——地基做完才知道上面能建几层,而不是先想好 10 层再打地基。
渐进式交付的本质是:边做边看清。 你不需要一开始就有一个完美的拆解方案。你只需要确保第一步够小,做完第一步后,第二步自然就清楚了。
每次给 AI 派任务时,用这个模板:
当前层级:[第 N 层 / 共约 M 层]
本层目标:[一句话描述本层要完成的功能]
输入依赖:[前面哪层的输出]
输出物:[具体文件 / 具体函数]
验证方式:[怎么确认这层做好了]
禁止事项:[本层不做的事]
请开始。这个模板做两件事:约束 AI 不要"顺带做一下",也约束你不要"顺便让它做一下"。
本文所有示例均已脱敏处理。你是怎么拆任务的?有比 150 行更合适的粒度吗?欢迎评论区聊。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。