一句话结论
先让 AI 列出 6 条能判对错的评审检查项,再逐条跑,比丢一句“帮我看看”稳定得多。
这篇解决什么问题
改完一段代码,随手丢给 AI 一句“帮我看看有没有问题”,回来的往往是命名建议和注释建议,真正会炸的边界条件反而没人提。不是模型不行,是你没告诉它按什么标准看。
适用:几十到几百行的单次改动,尤其涉及金额、时间、权限这类容易出错的逻辑。不适用:模块从零设计的阶段,或者你自己还没想清楚要做什么的探索期。
开始前要准备什么
- Claude 或 Cursor 任选其一,都有免费额度,日常够用
- 一份能贴进对话的 diff,控制在几百行以内
- 一张空白检查项表,或直接写在 PR 描述里
- 预计耗时:刚开始约半小时,熟了十分钟出头
具体怎么做
第 1 步 · 先让它复述改动范围
AI 不知道你改了哪几行。先把背景和担心点交代清楚,它才不会跑去挑三年前的老代码。
你是我的代码评审助手。下面是一次改动的范围说明,请先只做一件事:复述你理解的改动目的、影响到的模块、以及你认为需要重点看的地方。
变更目的:给订单导出接口加按时间范围过滤。改动文件:order_export_service.py、export_validator.py、api/order_export.py。改动规模:约 180 行新增、40 行修改。
涉及的依赖:订单库只读、导出队列。我担心的点:时间边界和时区。
先不要给评审意见,等我下一步。
预期产出:一段它对你这次改动的理解。对不上,说明背景没交代够,别急着往下走。
第 2 步 · 让它自己列 6 条检查项
这步是整件事的关节。不给检查项,AI 是随机挑刺;让它先列清单,你就有了可核对的尺子。
现在请为这次改动生成一份代码评审检查项,数量固定 6 条,不多不少。
要求一:每条必须是能用是或否判断的句子,不能写成“注意健壮性”这类空话。要求二:每条后面用一句话说明,这条不通过时线上会出什么事。
要求三:覆盖优先级按这个顺序排——数据正确性、边界与异常、并发与幂等、可观测性、可读性。要求四:至少有一条和我上面提到的时间边界、时区有关。
输出成表格,三列:编号、检查项、不通过时的后果。
预期产出:一张 6 行表格。我一般在此时删掉一两条太套话的,换上只有我们业务里才有的约束。
第 3 步 · 人工筛一遍,补业务项
模型列的 6 条里,通常有一两条放之四海皆准但对你没用。删掉,换成你知道的业务约束,再让它给验证方式。
我把你上一轮的 6 条调整成了下面这版,后面以这版为准:
1 时间范围参数跨时区时是否仍按 UTC 落库。2 起止时间相等时返回空还是全量。3 导出超过 5 万行时是否分页推进队列。4 空结果和异常返回的状态码是否区分。5 过滤条件是否走了索引。6 新增参数是否打日志。
请做两件事:一是指出这 6 条里有没有互相重叠的;二是每条给一个验证方式——看代码、跑测试、还是查日志。
预期产出:一份最终清单,每条后面挂着验证手段。后面几轮就照这张表走,不再临时想。
第 4 步 · 一次只喂一条
六条一起丢过去,它往往只认真答前两条。一条一轮,每条单独开对话,结论才收得住。
只评审第 1 条:时间范围参数跨时区时是否仍按 UTC 落库。
规则:只输出这一条的结论,不要顺带评价别的。结论只能是三种:通过、有问题、信息不足。说有问题时,必须给出文件名、行号区间和原始代码片段。信息不足时,说明还缺哪段代码,不要猜。不要重写代码,除非我明确要求。
预期产出:一条结论加一段带位置的证据。六条跑完通常要来回好几轮,遇到“信息不足”就补代码再问。
第 5 步 · 收成一张评审表
结论散在对话里没人愿意看。最后让它汇总成表,直接贴进 PR,评论就落在这里。
把前面 6 轮的结论汇总成一张 Markdown 表格,列固定为:检查项、结论、证据位置、建议动作、优先级。
结论只用通过、有问题、信息不足三种。证据位置写文件名和行号区间,没有就写未定位。优先级只能 P0、P1、P2,判断标准是会不会导致数据错。
表格后面另起一段,列出需要我确认的问题,最多 3 条。不要写开场白和总结语。
预期产出:一张能粘进 PR 评论区的表。我现在 PR 描述里放的就是这张,评审人扫一眼就知道哪条没通过。
实测记录
拿一个真实需求做对照:给订单导出加时间过滤,约 180 行改动,涉及两个服务和一次队列改造。
| 环节 | 实际情况 |
|---|---|
| 列 6 条检查项 | 通常一两分钟出结果,6 条里能用 4 条左右 |
| 逐条跑完 | 来回大概 20 分钟,其中一条因“信息不足”重跑过 |
| 同样的改动手工看 | 以前约 40 分钟,还容易漏掉时区边界 |
| 成本 | 用的都是日常额度,没有额外支出 |
| 翻车情况 | 有一次它指了一个不存在的函数名,回代码核对后作废 |
整体算下来比纯手工快一半左右。但真正的差别不是速度,是漏项少了——跨时区那个边界,手工评审时我大概率会跳过去。
最容易错的 3 个地方
- 检查项写成形容词,像“逻辑要健壮”,AI 只能回空话。改成能判是或否的句子。
- 六条一起丢过去,上下文一长它就只答前两条。一条一轮,分开跑。
- 直接采信结论,它偶尔会编出不存在的函数。每条都回代码里对着行号核一遍。
可复用的东西
把 6 条检查项存成一个文件,按场景拆成两三份:涉及金额的一份、涉及时间的一份、涉及权限的一份。下次改动调出对应那份,改两个词就能用。
提示词也存成片段:复述范围、生成检查项、单条评审、汇总成表,四段各放一处,换项目时只替换文件路径和业务描述。
说到底,AI 评审靠不靠谱,一半在模型,一半在你给的尺子够不够具体。
你们组现在最常返工的是哪种改动——时间边界、权限判断还是并发?可以照这套先跑一遍,把不合用的检查项直接换掉。
常见问题解答
6 条检查项一定要凑满 6 条吗?
不一定。6 条是便于逐条跑的数量,改动小的时候 4 条也够。关键是每条都能判对错,为凑数加进去的条目反而稀释注意力。
Claude 和 Cursor 该用哪个?
看改动在哪。在 Cursor 里能直接选中 diff 带着上下文问,适合边看边追;Claude 适合把整段改动贴进去做逐条评审。两个都有免费额度,日常量级够用。
AI 说“有问题”能全信吗?
不能。它偶尔会编出不存在的函数名或行号,每条结论都要回代码里核对位置。定位不到证据的,直接退回“信息不足”再问一轮。
本网站的部分内容可能来源于网络或用户投稿,仅供大家学习与参考,如有侵权,请联系客服: hhxmw778 进行删除处理。
本站一切资源不代表本站立场,并不代表本站赞同其观点和对其真实性负责。
教程如引导您添加微信或有另外收费服务,请自行甄别!
如遇充值环节或绑定支付账户或输入支付密码之类的异常步骤,建议停止操作!本站不对操作项目的损失负责!
本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现任何资源有问题请向站长举报下架
(手机微信用户建议用默认浏览器打开,可体验完整功能)
