乐于分享
好东西不私藏

AI 帮你做代码审查:开发者可直接上手的最小 Review 流程

AI 帮你做代码审查:开发者可直接上手的最小 Review 流程

这篇文章解决什么问题

AI 编码助手(Copilot、Cursor、Claude Code 等)已经成为许多开发者的日常工具。但当 AI 帮你写好代码后,你可能会遇到这样的情况:

  • • 提交 PR 后,只收到「格式问题请改」这样的表面反馈
  • • AI 理解业务逻辑有限,常犯重复的低级错误
  • • 审查周期拖得很长,团队效率其实没提升
  • • 没有把 AI 的优势用好,反而觉得 "又多了个工具要学"

本文教你一个最小可执行的 AI 辅助代码审查流程。不需要更改整个团队工具链,只需 5 个步骤,你就可以把 AI 变成可靠的审查伙伴。

背景

AI 编码助手生成代码后,审查工作往往落在人肉排查。但 AI 本身也是辅助审查的好帮手:

  • • 它能快速读完 diff,标出潜在问题
  • • 它能根据代码生成边界测试用例
  • • 它能检查常见的安全/性能隐患
  • • 它能帮助梳理审查意见,自动生成 reply

关键是要建立一个结构化的流程,而不是让 AI 乱翻东西。

前提条件

  • • 项目使用 Git 工作流(branch、commit、PR)
  • • 项目有基本的 CI/CD 接入
  • • 熟悉你使用的 AI 编码助手(Copilot、Cursor、Claude Code 等)
  • • 了解基本的测试框架(Jest、Pytest、Go test 等)

5 个最小步骤

Step 1:AI 先读 PR diff,标出潜在问题

做什么: 把 PR 的 diff 内容发给 AI,让它先做一次快速扫描

为什么: AI 擅长发现重复/冗余代码、类型不匹配、边界遗漏

操作方法:

# 获取当前 PR 的 diff 内容
git diff main...HEAD > pr-diff.txt

然后在你的 AI 助手中输入:

请审查这段代码变更,重点检查:

  1. 1. 类型错误(TypeScript/Python 类型注解)
  2. 2. 边界条件处理(null/empty array)
  3. 3. 副作用(修改外部状态)
  4. 4. 安全问题(命令注入、路径穿越)
  5. 5. 是否符合常见代码规范

通关标准: AI 提出的 5 个问题中,有 3 个以上是有效问题

常见问题:

  • • AI 可能会给出过于理想化的建议
  • • 忽略业务特殊逻辑是正常的,需要人工判断

Step 2:AI 自动生成边界测试用例

做什么: 让 AI 为新增/修改的函数生成边界测试

为什么: AI 生成的边界测试覆盖率往往更全面

操作方法:

选中需要测试的函数,输入:

为这个函数生成边界测试用例,包括:

  • • 空值/null 输入
  • • 空数组/空对象
  • • 超长/超大数字输入
  • • 格式不正确的字符串

示例(Python):

# 原始函数
def
 calculate_total(items, discount_rate=0):
    return
 sum(items) * (1 - discount_rate)

# AI 生成的边界测试

import
 pytest

def
 test_empty_items():
    assert
 calculate_total([]) == 0

def
 test_null_items():
    with
 pytest.raises(TypeError):
        calculate_total(None)

def
 test_negative_discount():
    with
 pytest.raises(ValueError):
        calculate_total([100], discount_rate=-0.1)

通关标准: 每个新增函数至少补 3 个边界测试


Step 3:AI 检查是否符合团队规范

做什么: 让 AI 审查代码风格和注释规范

为什么: 避免因为 "注释不全" 这样的低级问题又得返工

操作方法:

请检查这段代码是否符合我们团队的规范:

  1. 1. 函数都有 docstring/type hints
  2. 2. 复杂逻辑有注释说明
  3. 3. 变量命名清晰无歧义
  4. 4. 没有调试代码遗留

检查技巧:

// 不好的代码
function
 proc(d) {
  return
 d.map(x => x * 2);
}

// AI 建议改进

/**
 * 将数组中的每个数字乘以 2
 * @param {number[]} data - 输入数字数组
 * @returns {number[]} 处理后的数组
 */

function
 processNumbers(data) {
  return
 data.map(item => item * 2);
}

通关标准: AI 没找到规范问题,或团队已接受修改建议


Step 4:AI 检查安全/性能隐患

做什么: 让 AI 审查常见的安全和性能问题

为什么: AI 虽然不懂业务,但对常见漏洞模式敏感

检查方法:

问自己这几个问题(或让 AI 来回答):

  • • 是否执行了 shell 命令?如果是,参数是否被安全转义?
  • • 是否操作了文件系统?路径是否经过验证?
  • • 是否处理了用户输入?是否存在注入风险?
  • • 是否查询了数据库?是否有 SQL 注入风险?
  • • 是否有可能引发性能问题(嵌套循环、大文件读取)?

常见安全问题:

// 危险:命令注入
exec
('git log --oneline -n ' + count);

// 安全:参数数组

exec
(['git', 'log', '--oneline', '-n', String(count)]);

// 危险:路径穿越

fs.readFile(userId + '/config.json');

// 安全:路径验证

const
 safePath = path.resolve(baseDir, userId, 'config.json');
if
 (!safePath.startsWith(baseDir)) {
  throw
 new Error('Invalid path');
}

通关标准: 没有明显的注入、遍历或敏感数据泄露风险


Step 5:人工复核,AI 辅助沟通

做什么: 人工判断 AI 提出的问题,AI 帮助整理审查意见

为什么: AI 可以快速整理,但最终决策需要人来做

操作方法:

  1. 1. 人工复核 - 针对 AI 提出的问题,逐一判断是否有效
  2. 2. AI 整理意见 - 把最终的问题整理成清晰的评论

请帮我整理下面这些审查问题,以清晰简洁的方式写成 PR 评论:
[粘贴你确认的问题列表]

AI 生成的审查评论示例:

Thanks for the PR! I have a few suggestions:

1.
 **Type safety**: Line 42-45 - The `userData` parameter lacks proper type annotation. Consider adding `User | null`.

2.
 **Boundary check**: The `calculateAverage` function doesn't handle empty arrays. Should return 0 or throw error?

3.
 **Security**: Line 78 - Using string concatenation in SQL query. Suggest using parameterized query instead.

4.
 **Style**: Missing docstring for `processBatch` function.

通关标准: 审查意见清晰,被审查者能快速理解和修改

常见问题

AI 提的建议不准确怎么办?

  • • 先问 AI 要解释原因:"为什么这会被认为是问题?"
  • • 让 AI 给出修改建议:"如何改成更好的写法?"
  • • 如果 AI 理解有误,记下这个案例,下次补充到 prompt 中

怎么让 AI 理解业务逻辑?

  • • 在审查开始前,简单介绍业务背景
  • • 指出哪些是业务规则约束
  • • 让 AI 标记它不确定的地方,人工仔细检查

怎样权衡 AI 建议和自己判断?

  • • 对于安全/性能问题:宁可信其可能性
  • • 对于业务逻辑:必须人工确认
  • • 对于风格问题:参考但不盲从

这个流程要多久?

  • • Step 1-2:2-3 分钟
  • • Step 3-4:3-5 分钟
  • • Step 5:2-3 分钟
  • • 总计:10-15 分钟,显著减少人工审查时间

执行流程总结

  1. 1. 保存代码后,先复制 diff 给 AI
  2. 2. 让 AI 快速扫描,记录问题
  3. 3. 让 AI 生成边界测试,补充测试覆盖
  4. 4. 让 AI 检查规范和安全问题
  5. 5. 人工判断后,AI 整理审查意见

总结

AI 编码助手是强大的生产力工具,但它不应该只用来写代码。通过这个最小审查流程,你可以:

  1. 1. 提前发现 80% 的常见问题
  2. 2. 减少审查周期 50% 以上
  3. 3. 让团队更早看到高质量的 PR
  4. 4. 把重复劳动交给 AI,把创造力留给人类

记住这个 5 步流程:

  1. 1. AI 读 diff,标问题
  2. 2. AI 补边界测试
  3. 3. AI 审规范
  4. 4. AI 审安全
  5. 5. 人工复核,AI 整理意见

你的 PR 审查效率会显著提升。