作为每天写业务代码、修线上问题、参加评审的后端或全栈开发,你可能也有同感:真正写代码的时间常被排查问题、写文档和同步进度挤占,很多重复性的文字和样板代码其实可以交给 AI 起草。代码评审耗时且容易流于形式,AI 可以先找出明显的问题,让人把精力放在设计和业务逻辑上。本文给出程序员用 AI 做代码评审的一套可直接照抄的做法:把改动的代码和背景说明交给 AI,指定评审维度和输出格式,让它按严重程度列问题,再由人判断。

场景:程序员为什么需要 AI 做代码评审

程序员每周要评审不少代码改动,比如和“完成订单服务接口重构,接口平均响应从约 300ms 降到 120ms 左右(以压测为准)”相关的提交。改动多的时候很难每行都仔细看,容易漏掉边界条件、异常处理和安全问题。尤其当技术负责人同时还在等“补齐用户模块的单元测试”的结果时,能把这部分工作提速,就能腾出精力处理更重要的判断。

推荐工具

代码托管平台和编辑器中有不少 AI 评审工具,例如 GitHub Copilot 的代码评审、GitLab Duo、Cursor 以及各类开源的 AI 评审机器人;也可以把差异内容贴给对话助手。

编辑器内的编程助手能结合项目上下文评审;独立的对话助手适合评审单个文件或片段。注意公司对源代码外发的规定。

举个例子

先看一个虚构但很典型的例子。林林是一位每天写业务代码、修线上问题、参加评审的后端或全栈开发,这周手头的事情包括“补齐用户模块的单元测试”和“排查定时任务重复执行问题”,偏偏这时又需要做代码评审。林林没有从空白页开始,而是先花几分钟把相关材料整理好,按下面的提示词交给 AI,拿到初稿后对照原始资料逐条核对,再补上自己的判断。整个过程中,林林特别留意不把密钥、内网地址、数据库连接串和用户数据放进对话里。

具体怎么做

  1. 准备改动说明:这次改动要解决什么问题
  2. 指定评审维度:正确性、边界条件、安全、性能、可读性
  3. 要求按严重程度分级输出,并给出修改建议
  4. 人工确认每条意见,AI 的意见不等于结论

提示词模板(可直接复制)

把方括号和括号里的内容换成你自己的信息即可:

【背景】最近在处理“补齐用户模块的单元测试”,同时要准备“排查定时任务重复执行问题”。
请评审下面这段代码改动。

背景:完成订单服务接口重构,接口平均响应从约 300ms 降到 120ms 左右(以压测为准),这次改动新增了一个按服务名查询“接口调用记录”的接口。
语言:Python(FastAPI)

评审维度:
1. 正确性和边界条件(空值、分页、时区)
2. 安全(注入、越权、敏感信息日志)
3. 性能(N+1 查询、缺少索引)
4. 可读性和可维护性

输出格式:严重程度(阻塞 / 建议 / 细节)| 位置 | 问题 | 修改建议
只指出确实存在的问题,不确定的请标注“需确认”。

代码:
(粘贴 diff)

AI 输出示例(示意)

下面是演示用的输出示例,其中的人名、数字和事项均为虚构,实际使用时请以你自己的资料为准:

严重程度位置问题修改建议
阻塞query_records 第 12 行用字符串拼接构造 SQL,存在注入风险改为参数化查询
阻塞接口入口未校验调用者是否有权访问该服务名的数据增加权限校验
建议第 20 行每条记录单独查询关联信息,存在 N+1 问题改为批量查询
建议日志打印了完整请求参数,可能包含敏感信息脱敏后再记录
细节第 5 行变量名 d 含义不清改为 record_date

需确认:page_size 未设上限,是否在网关层已限制?

拿到类似的结果后,林林的做法是先核对事实和数字,再结合“排查定时任务重复执行问题”的安排调整重点,最后才对外使用。

实用技巧与常见坑

  • 提供改动背景,否则 AI 无法判断逻辑是否符合需求。
  • 要求它“只指出确实存在的问题”,减少泛泛而谈的建议。
  • 把团队的编码规范放进提示词,评审意见会更一致。

给程序员的特别提醒

让 AI 先解释思路再给代码,便于你判断方向对不对。还有一点很关键:AI 生成的代码必须经过本地运行、测试和代码评审,不要直接合入主干。

很多程序员还会这样做:把报错堆栈、相关代码片段和运行环境版本一起贴给 AI,比只描述现象有效得多。

变体用法

  • 安全专项:只关注注入、越权、敏感数据等安全问题。
  • 评审总结:汇总一段时间的评审意见,提炼团队常见问题。

相关阅读