本篇目标:不仅让 AI 写代码,还要让它做你的“毒舌导师”。学会这招,你的代码质量将超越 80% 的初级工程师。


一、为什么需要 AI 做 Review?

很多初学者写代码是“能跑就行”。

  • 变量名叫 a, b, c
  • 函数长达 200 行。
  • 没有任何异常处理,一报错就崩。
  • 密码直接写在代码里。

在公司里,这些代码会被 Senior 工程师骂死。但如果你是一个人开发,谁来骂你?
AI 可以。 而且它比真人更全面、更耐心,只要你给它一份 Checklist(检查清单)


二、不要只问“这段代码怎么样?”

如果你问:“帮我看看这段代码。”
AI 通常会说:“写得真棒!逻辑清晰!稍微改改这里就好了……”(全是客套话)。

必须强制它“找茬”。你要告诉它:“请假设你是一个最挑剔的代码审查员(Code Reviewer),你的任务是找出所有潜在的问题。”


三、构建你的 Review Checklist

一个合格的代码审查,应该覆盖以下维度:

1. 安全性(Security)

  • 有没有 SQL 注入?
  • 有没有硬编码密钥?
  • 有没有暴露敏感数据?

2. 性能(Performance)

  • 有没有 O(N^2) 的循环?
  • 有没有重复查询数据库(N+1 问题)?
  • 有没有内存泄漏风险?

3. 可读性与规范(Readability)

  • 变量名是否清晰?
  • 是否符合 PEP8 (Python) / Airbnb (JS) 规范?
  • 有没有写注释?

4. 健壮性(Robustness)

  • 输入为空怎么办?
  • 网络断了怎么办?
  • 文件不存在怎么办?

四、实战:Review 提示词模板

请直接复制这段 Prompt,保存为 Reviewer.md

# Role
You are a Senior Software Architect known for strict code reviews.

# Task
Review the provided code against the following Checklist.

# Checklist
1.  **Security**: Check for SQL injection, XSS, and hardcoded secrets.
2.  **Performance**: Identify O(N^2) loops, redundant computations, or N+1 queries.
3.  **Error Handling**: Are exceptions caught specifically? Is there a fallback logic?
4.  **Readability**: Are variable names descriptive? Are functions small and focused?
5.  **Type Safety**: Are type hints used correctly?

# Output Format
Please output the review in the following Markdown format:

## 🚨 Critical Issues (Must Fix)
- [Line 12]: Explanation of the bug/security risk.

## ⚠️ Suggestions (Should Fix)
- [Line 45]: Suggestion to improve readability or performance.

## ✅ Good Practices
- Mention 1-2 things done well (to keep morale up).

# Code
[贴入你的代码]

五、演示:AI 如何把“烂代码”批得体无完肤

你的代码

def get_user(id):
    import mysql.connector
    conn = mysql.connector.connect(user='root', password='123', database='test')
    cursor = conn.cursor()
    cursor.execute("SELECT * FROM users WHERE id = " + id) # 👈 SQL注入 + 没关连接
    return cursor.fetchone()

AI Review 结果

🚨 Critical Issues (Must Fix)

  • [Line 3] Hardcoded Secrets: 密码 '123' 直接写在代码里了。请使用环境变量。
  • [Line 5] SQL Injection: 使用字符串拼接 SQL 是极度危险的。请使用参数化查询 execute("SELECT * FROM users WHERE id = %s", (id,))
  • [Line 6] Resource Leak: 数据库连接 conn 没有关闭。如果函数报错,连接会一直挂着。请使用 with 语句或 finally 块。

⚠️ Suggestions (Should Fix)

  • [Line 1] Import inside function: 建议把 import 移到文件顶部。
  • [Line 1] Variable Name: id 是 Python 内置函数名,建议改名为 user_id
  • [Line 1] Missing Type Hints: 请加上 user_id: int 和返回类型注解。

六、总结:团队级 Review Checklist

如果你在团队里,可以把这个清单打印出来,作为 Code Review 的标准:

维度 检查项 为什么重要
安全 密钥、注入、权限 防止删库跑路
性能 循环、IO、并发 防止服务器卡死
健壮 空值、异常、重试 防止半夜被叫起来修 Bug
规范 命名、格式、注释 防止同事看不懂想打人

下一步:我们已经学会了怎么写代码、怎么修 Bug、怎么 Review。但在实际工作中,还有一个巨大的隐患——AI 可能会一本正经地胡说八道(幻觉)。下一章我们将学习如何用“反幻觉策略”来验证 AI 的每一个字。

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐