目录

AI 辅助 Code Review:一年实战后的真实反馈

背景

我们团队从 2024 年中开始系统性地用 AI 做 Code Review。

具体方案:每个 PR 提交后,AI Review Bot 自动分析代码变更,评论在 PR 里。人工 reviewer 只看 AI 的意见。

一年下来,有了足够的数据。

AI 能发现的问题

1. 安全漏洞(效果极好)

AI 在发现安全问题上出人意料地强。

# AI 发现的问题:SQL Injection
def get_user(request, user_id):
    query = f"SELECT * FROM users WHERE id = {user_id}"
    # AI 评论:⚠️ 直接拼接用户输入到 SQL,SQL injection 风险
    # 建议用参数化查询

AI 能发现:SQL injection、XSS、敏感信息泄露、硬编码凭证。这些问题人工 review 容易漏,但 AI 扫描很稳定。

2. 明显的逻辑错误

# AI 发现:边界条件漏了
def calculate_discount(price, discount_percent):
    if discount_percent > 100:
        return 0  # 这个判断有了
    
    # 但漏了 price < 0 的情况
    return price * (1 - discount_percent / 100)

# AI 评论:⚠️ price 可能为负数,没有处理

3. 代码重复和坏味道

# AI 发现:这段代码和上面的 process_order 几乎一样
# 建议提取公共函数
def ship_order(order_id):
    # 97% 和 process_order 的代码重复
    pass

AI 完全 miss 掉的问题

1. 业务逻辑错误

这是最大的盲区。

AI 不知道你公司的业务规则。它只能检查代码"逻辑上对不对",不能检查"是否符合业务需求"。

# AI 没发现问题(但实际是 bug)
def apply_coupon(order_total, coupon):
    if coupon.type == "percentage":
        return order_total * (1 - coupon.value / 100)
    # 没问题...
    return order_total

# 但业务规则是:coupon 不能超过 order_total 的 50%
# AI 不知道这个业务规则,所以没有发现

2. 性能问题(大多数情况)

AI 能发现明显的 N+1,但复杂的性能问题往往检测不到。

# AI 没有标记性能问题(但实际有)
def get_user_orders(user_id):
    orders = db.query("SELECT * FROM orders WHERE user_id = ?", user_id)
    for order in orders:
        # 每个 order 都单独查 user
        user = db.query("SELECT * FROM users WHERE id = ?", order.user_id)
        order.user = user
    return orders

# AI 没发现这是 N+1(queries = 1 + N)

3. 边界条件和错误处理(复杂场景)

简单的 null check AI 能发现,但复杂的错误处理逻辑 AI 经常 miss。

一年数据

我们统计了 AI Review Bot 发现的问题和人工确认有效率:

问题类型 AI 发现率 人工确认有效率
安全漏洞 95% 92%
SQL/N+1 88% 85%
空指针/边界 75% 70%
业务逻辑 12% 40%
性能问题 45% 50%
代码重复 80% 78%

结论:AI 在安全和基础代码质量上很强,业务逻辑和复杂性能问题上很弱。

实际工作流

PR 提交后:
  1. AI Review Bot 自动分析 diff
  2. 在 PR 里评论(分 priority)
     - 🔴 P1: 安全漏洞(block PR)
     - 🟡 P2: 逻辑/边界问题(建议修)
     - 🟢 P3: 代码风格(可选)
  3. 人工 reviewer 只看 P1 和 P2
  4. P3 建议开发者自己决定

工具选择

工具 集成方式 特点
GitHub Copilot Review GitHub Actions 官方集成,但功能有限
Cursor Reviews PR 评论 可在 IDE 里直接看
Meta AI Reviewer 自建 可以定制规则,最灵活
SonarQube AI CI/CD 老牌扫描 + AI 增强

我们最后用的是自建方案,接 Claude Sonnet,自己写规则过滤误报。

结论

AI Code Review 的价值:把人工 reviewer 从 80% 的 trivial 问题里解放出来

让 human reviewer 专注于业务逻辑和架构决策,AI 负责安全扫描和基础代码质量。

不是 AI 取代 human reviewer,是 AI 让 human reviewer 更有价值。