0%

从头学 Claude Code(九)请个监理来挑毛病——代码审查实战

从头学 Claude Code(九)—— 请个监理来挑毛病:代码审查实战

本系列适合零基础新手,手把手带你掌握 AI 编程助手


上节回顾

上一讲我们学了添加新功能,相当于”装修房子”。这一讲,我们来学代码审查,就像请了个”工程监理”来检查质量。


1. 什么是代码审查?

想象一下:

你家装修完了,要不要请个监理来检查一下? - 水电有没有安全隐患? - 防水有没有做好? - 甲醛有没有超标?

代码审查就是这个道理——写完代码,请个人来挑毛病

用 Claude Code 审查 = 让 AI 帮你做”工程监理”,它能帮你发现: - 🔴 问题:Bug、逻辑错误 - 🟠 风险:安全漏洞、性能问题 - 🟡 改进:代码规范、可读性、可维护性


2. 审查场景:什么时候需要监理?

场景 目的 推荐模式
自己的代码 改进质量 只读或默认
团队成员代码 代码评审 只读
开源项目 学习或贡献 只读
重构前 了解风险 只读

💡 就像请监理:自己家的房子可以自己检查,请人检查更专业


3. 审查类型:全面检查还是专项检查?

类型一:快速审查——就像巡逻保安

适用场景:时间紧迫,只看关键问题

1
2
3
快速审查 src/utils/auth.js,主要关注:
1. 安全性问题(有没有小偷能进来的洞)
2. 明显的逻辑错误(结构有没有问题)

就像保安巡逻:“看看有没有异常,没问题我就走了”


类型二:全面审查——就像验房师

适用场景:重要代码,仔细检查

1
2
3
4
5
6
全面审查 src/api/user.js,检查:
1. 安全性(有没有漏洞、小偷能不能进来)
2. 性能(有没有浪费材料、效率低不低)
3. 代码规范(干得漂不漂亮、整不整洁)
4. 错误处理(出了问题能不能补救)
5. 测试覆盖(有没有质检合格证)

就像验房师:“水电、防水、甲醛、面积…一项一项查”


类型三:专项审查——就像请专科医生

适用场景:关注特定方面

1
2
3
审查 src/components/Form.vue 的:
- 可访问性(残障人士能不能用)
- 表单验证逻辑(数据干不干净)

就像鼻子不舒服去看耳鼻喉科,不是一般体检


4. 审查流程(4A):监理的工作流程

第一步:Analyze - 看图纸

1
审查 src/controllers/user.js 代码

Claude 会: - 阅读代码——看看施工图 - 理解逻辑——了解设计方案 - 识别模式——看看用的是啥工艺

就像监理先看看设计图纸,了解要检查什么


第二步:Architect - 定检查项

1
2
3
4
好的,请从以下角度审查:
- 安全性(结构安全)
- 性能(材料浪费)
- 可维护性(以后好不好修)

就像监理说:“这次我要检查水电、防水、承重墙…”


第三步:Apply - 逐项检查

1
请详细列出发现的问题

Claude 会一项一项检查,记录每个问题。

就像监理拿着小锤敲墙面、用电笔测电路…


第四步:Assert - 出报告

1
2
3
4
5
6
7
8
9
10
11
生成审查报告,格式如下:
## 问题列表
1. [严重] 问题描述 - 文件:行号
2. [中等] 问题描述

## 建议改进
1. ...

## 总体评价
- 代码质量:7/10
- 可维护性:8/10

就像监理写出验房报告:“发现3个问题,建议…”


5. 常见审查问题清单:监理都在查什么?

🔴 安全性问题——防盗门锁好了没?

问题 检查点
SQL 注入 是否直接拼接 SQL(有没有让小偷进来的洞)
XSS 是否转义用户输入(有没有下毒的机会)
敏感信息 是否暴露 API 密钥、密码(银行卡密码有没有乱放)
权限控制 是否有越权漏洞(防盗门能不能被撬开)

🟠 性能问题——材料有没有浪费?

问题 检查点
N+1 查询 循环中是否有数据库查询(一个一个买材料和统一采购的区别)
内存泄漏 是否有未释放的资源(东西用完有没有放回原处)
重复计算 是否有可以缓存的计算(同样的活有没有重复做)
大数据处理 是否分页处理(一次搬一百箱和分十次搬的区别)

🟡 代码规范——活干得整不整洁?

问题 检查点
命名 变量/函数名是否清晰(标签贴对了没)
注释 复杂逻辑是否有说明(有没有操作手册)
长度 函数是否过长(一个人干完还是分工合作)
重复 是否有重复代码可抽取(有没有同样的活在不同地方干)

🟢 错误处理——出了问题怎么办?

问题 检查点
空值处理 是否有 null 检查(有没有准备好备胎)
异常捕获 是否有 try-catch(有没有安全气囊)
用户提示 错误是否友好展示(出了问题说不说得清)

6. 审查报告示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 代码审查报告 - XX小区XX栋

## 基本信息
楼栋:src/api/user.js
层数:156行
检查时间:2026-04-01

## 问题列表

### 🔴 严重问题 (2个)

1. [安全] SQL 注入风险 - 第 23 行
```javascript
const query = `SELECT * FROM users WHERE name = '${name}'`

相当于:窗户没关,小偷可以直接进来 建议:装防盗窗(使用参数化查询)

  1. [安全] 敏感信息泄露 - 第 45 行
    1
    console.log('API_KEY:', apiKey)
    相当于:把银行卡密码贴在门上 建议:撕掉,用环境变量

🟡 中等问题 (3个)

  1. [性能] N+1 查询风险 - 第 67-72 行
  2. [规范] 函数过长(86 行)- 第 30-115 行
  3. [错误] 缺少空值检查 - 第 28 行

🟢 建议 (2个)

  1. [改进] 可以抽取重复代码
  2. [文档] 建议添加 JSDoc 注释

总体评分

  • 安全性:4/10 ⚠️ (不及格,要紧!)
  • 性能:7/10 (还行)
  • 可维护性:6/10 (刚刚及格)
  • 代码规范:7/10 (还行)

建议优先级

  1. 🔴 修复 SQL 注入(先修防盗窗!)
  2. 🔴 删除敏感信息(别把密码贴门上)
  3. 🟠 优化查询逻辑(少跑腿)
  4. 🟠 重构过长函数(分工合作)
    1
    2
    3
    4
    5
    6
    7

    ---

    ## 7. 审查技巧:怎么让监理更专业

    ### 技巧一:使用只读模式

    claude –plan –print “审查 src/utils/auth.js 的安全性”
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11

    只读模式确保:
    - 不会意外修改代码——就像监理只看不动手
    - 专注于分析——全身心检查

    > 就像说:"你就看看,不要动任何东西啊"

    ---

    ### 技巧二:指定审查重点

    重点审查:
  5. 安全性(必须查)
  6. 性能(如果时间允许)
  7. 其他(可选)
    1
    2
    3
    4
    5
    6
    7

    > 就像说:"这次主要查水电,其他顺带看看"

    ---

    ### 技巧三:获取修复建议

    不仅指出问题,还请给出修复代码
    1
    2
    3
    4
    5
    6
    7

    > 就像说:"指出问题不够,你得告诉我怎么修"

    ---

    ### 技巧四:追问细节

    关于第 23 行的 SQL 注入,能详细解释一下风险吗? ```

就像问:“这个洞有多大危害?小偷能进来偷什么?”


本节小结

  • 审查类型:快速(巡逻)、全面(验房)、专项(专科)
  • 审查重点:安全(防盗)、性能(省料)、规范(整洁)、错误处理(救生圈)
  • 输出报告:问题列表 + 评分 + 建议
  • 使用技巧:只读模式 + 指定重点 + 追问细节

💡 记住:代码审查就像请监理——花小钱省大麻烦!


下节预告

下一讲:学习自动化测试——用 Playwright 给代码做”体检”


有问题?评论区见!如果觉得有帮助,点个赞再走~


标签: #Claude Code #AI编程 #代码审查 #实战教程