代码审查太头疼?这条Prompt让AI替你找出隐藏bug和性能坑

代码写完就敢提交?别急,先让AI审一遍

我有个同事,每次写完代码直接push到分支上。

结果呢?Code Review被骂三次,线上出了两个低级bug,还有一次差点把数据库给删了。

后来我给了他一条Code Review的Prompt,用了半年,线上bug少了七成。

核心思路很简单:你不用自己盯着每一行代码找问题。把代码丢给AI,让它扮演一个毒舌的Senior Engineer,帮你把能发现的问题全翻出来。


完整Code Review模板

把下面这段复制到 ChatGPT 或 Claude:

你是一位有10年经验的高级工程师,擅长Code Review。请对我提交的代码进行全面审查。

【语言和环境】
编程语言:[如 Python 3.11 / TypeScript 5 / Go 1.21]
框架/库:[如 FastAPI / React / Gin]
运行环境:[如 Linux / Docker / K8s]

【代码】
```[语言]
[粘贴你的代码]

【上下文】

  • 这段代码的作用:[一句话说明]
  • 调用方/被调用方:[简要说明在系统中的位置]
  • 性能要求:[如有特殊要求,如QPS > 1000]

请从以下维度审查:

  1. Bug 检测

    • 逻辑错误(边界条件、空值处理、并发问题)
    • 可能的运行时异常
    • 资源泄漏风险(文件、连接、内存)
  2. 安全隐患

    • SQL注入/XSS/CSRF等常见漏洞
    • 敏感信息泄露(密钥、日志打印)
    • 权限控制缺失
  3. 性能问题

    • 时间复杂度/空间复杂度隐患
    • 不必要的循环或重复计算
    • 数据库查询优化建议
  4. 代码质量

    • 命名是否清晰
    • 函数是否过长或职责过多
    • 是否有重复代码可以提取
    • 异常处理是否完善
  5. 改进建议

    • 按严重程度排序(P0/P1/P2)
    • 给出修改后的代码片段
    • 说明为什么这样改更好

注意:不要过度重构,尊重原作者的风格。只指出真正重要的问题。


---

## 快速版(30秒搞定)

没时间搞那么细?用这个精简版:

请Review以下代码,只告诉我:

  1. 最严重的3个问题(附修复代码)
  2. 最容易被忽视的一个边界情况
  3. 你觉得最丑的一行代码,怎么改

代码:

[粘贴代码]

---

## 场景变体

### 新人代码审查(温和版)

刚入行的同事写的代码,不想打击信心,但要帮他进步:

你是一位耐心细致的Tech Lead,正在指导一位初级工程师。请Review以下代码:

【代码】 [粘贴代码]

请输出:

  1. 做得好的地方(至少3条,具体说明)
  2. 可以改进的地方(不超过5条,每条附示例代码)
  3. 一个学习建议(推荐一篇技术文章或一个概念深入学习)

语气:鼓励为主,指出问题时用「建议尝试」而非「你应该」。


### 上线前最终审查(严格版)

代码要合入主干或发布到生产环境了,需要最严格的审查:

这段代码即将上线,请用最严格的标准Review:

【代码】 [粘贴代码]

【关键信息】

  • 影响的模块:[说明]
  • 用户量级:[如 DAU 10万 / 100万]
  • 数据敏感度:[如 包含用户个人信息]

请重点检查:

  1. 所有可能的异常路径是否都处理了
  2. 并发场景下的竞态条件
  3. 数据库事务是否正确回滚
  4. 日志是否足够排查问题
  5. 有没有遗漏的错误码或提示信息
  6. 对下游系统的容错(超时、重试、熔断)

只说致命问题。如果代码没问题,直接说「通过」。


### API接口审查

专门针对后端API的Code Review:

请Review以下API接口的实现代码:

【代码】 [粘贴代码]

【接口信息】

  • 路由:[GET/POST /api/v1/xxx]
  • 入参:[JSON结构或参数列表]
  • 出参:[JSON结构]

请检查:

  1. 参数校验是否充分(类型、范围、必填)
  2. 错误响应格式是否统一
  3. 是否有N+1查询问题
  4. 分页参数是否有限制
  5. 接口幂等性(如果是POST/PUT)
  6. 速率限制是否考虑

---

## 使用技巧

**给足上下文比代码本身更重要。** AI不知道你的系统架构,你不告诉它,它就看不出问题。在「上下文」部分至少写明:这段代码在系统里的位置、调用关系、性能要求。

**别让它当裁判,让它当教练。** 上面的模板我刻意强调了「给出修改后的代码片段」。很多Code Review只说不改,等于没说。能看到具体改法,学习价值翻倍。

**按严重程度排序是关键。** 代码Review最容易犯的错是把所有问题平铺罗列。P0级别的bug和P2级别的命名建议混在一起,让人无从下手。模板里明确要求按P0/P1/P2排序,你先解决致命的,再优化细节。

**定期回顾Review记录。** 把AI每次指出的问题存下来,一个月后你会发现自己总在犯同样的错。这时候就该想想:是代码规范没写好?还是测试覆盖不够?从根源解决问题。

---

## 实战示例

**输入:**

```python
def get_user_orders(user_id):
    orders = Order.objects.filter(user_id=user_id)
    result = []
    for order in orders:
        items = OrderItem.objects.filter(order_id=order.id)
        total = 0
        for item in items:
            total += item.price * item.quantity
        result.append({
            'order_id': order.id,
            'total': total,
            'status': order.status
        })
    return result

AI 输出(摘要):

🔴 P0 - N+1查询问题
OrderItem.objects.filter 在循环里执行了N次查询。
如果用户有100个订单,就会多执行100次数据库查询。

修复:
items = OrderItem.objects.filter(order__user_id=user_id)
然后在Python里分组统计。

🟡 P1 - 没有缓存
每次请求都查数据库,高频接口应该加缓存。

🟡 P1 - 缺少异常处理
数据库连接失败、数据格式异常都没有catch。

🟢 P2 - 命名可以更清晰
result 改成 order_summary_list 更明确。

🟢 P2 - 没有分页
如果用户订单超过1万条,一次性返回会爆内存。

最后说一句

Code Review 不是挑刺,是帮你少踩坑。

AI做不了最终决定,但它能帮你发现那些「写完就忘」的细节问题。

今晚写完代码,别急着commit,先让AI审一遍。你会发现很多平时看不到的问题。

你的代码,准备好被Review了吗?

这篇文章对你有帮助吗?