从头学 Claude Code(九)—— 请个监理来挑毛病:代码审查实战
本系列适合零基础新手,手把手带你掌握 AI 编程助手
上节回顾
上一讲我们学了添加新功能,相当于”装修房子”。这一讲,我们来学代码审查,就像请了个”工程监理”来检查质量。
1. 什么是代码审查?
想象一下:
你家装修完了,要不要请个监理来检查一下? - 水电有没有安全隐患? - 防水有没有做好? - 甲醛有没有超标?
代码审查就是这个道理——写完代码,请个人来挑毛病。
用 Claude Code 审查 = 让 AI 帮你做”工程监理”,它能帮你发现: - 🔴 问题:Bug、逻辑错误 - 🟠 风险:安全漏洞、性能问题 - 🟡 改进:代码规范、可读性、可维护性
2. 审查场景:什么时候需要监理?
| 场景 | 目的 | 推荐模式 |
|---|---|---|
| 自己的代码 | 改进质量 | 只读或默认 |
| 团队成员代码 | 代码评审 | 只读 |
| 开源项目 | 学习或贡献 | 只读 |
| 重构前 | 了解风险 | 只读 |
💡 就像请监理:自己家的房子可以自己检查,请人检查更专业
3. 审查类型:全面检查还是专项检查?
类型一:快速审查——就像巡逻保安
适用场景:时间紧迫,只看关键问题
1 | 快速审查 src/utils/auth.js,主要关注: |
就像保安巡逻:“看看有没有异常,没问题我就走了”
类型二:全面审查——就像验房师
适用场景:重要代码,仔细检查
1 | 全面审查 src/api/user.js,检查: |
就像验房师:“水电、防水、甲醛、面积…一项一项查”
类型三:专项审查——就像请专科医生
适用场景:关注特定方面
1 | 审查 src/components/Form.vue 的: |
就像鼻子不舒服去看耳鼻喉科,不是一般体检
4. 审查流程(4A):监理的工作流程
第一步:Analyze - 看图纸
1 | 审查 src/controllers/user.js 代码 |
Claude 会: - 阅读代码——看看施工图 - 理解逻辑——了解设计方案 - 识别模式——看看用的是啥工艺
就像监理先看看设计图纸,了解要检查什么
第二步:Architect - 定检查项
1 | 好的,请从以下角度审查: |
就像监理说:“这次我要检查水电、防水、承重墙…”
第三步:Apply - 逐项检查
1 | 请详细列出发现的问题 |
Claude 会一项一项检查,记录每个问题。
就像监理拿着小锤敲墙面、用电笔测电路…
第四步:Assert - 出报告
1 | 生成审查报告,格式如下: |
就像监理写出验房报告:“发现3个问题,建议…”
5. 常见审查问题清单:监理都在查什么?
🔴 安全性问题——防盗门锁好了没?
| 问题 | 检查点 |
|---|---|
| SQL 注入 | 是否直接拼接 SQL(有没有让小偷进来的洞) |
| XSS | 是否转义用户输入(有没有下毒的机会) |
| 敏感信息 | 是否暴露 API 密钥、密码(银行卡密码有没有乱放) |
| 权限控制 | 是否有越权漏洞(防盗门能不能被撬开) |
🟠 性能问题——材料有没有浪费?
| 问题 | 检查点 |
|---|---|
| N+1 查询 | 循环中是否有数据库查询(一个一个买材料和统一采购的区别) |
| 内存泄漏 | 是否有未释放的资源(东西用完有没有放回原处) |
| 重复计算 | 是否有可以缓存的计算(同样的活有没有重复做) |
| 大数据处理 | 是否分页处理(一次搬一百箱和分十次搬的区别) |
🟡 代码规范——活干得整不整洁?
| 问题 | 检查点 |
|---|---|
| 命名 | 变量/函数名是否清晰(标签贴对了没) |
| 注释 | 复杂逻辑是否有说明(有没有操作手册) |
| 长度 | 函数是否过长(一个人干完还是分工合作) |
| 重复 | 是否有重复代码可抽取(有没有同样的活在不同地方干) |
🟢 错误处理——出了问题怎么办?
| 问题 | 检查点 |
|---|---|
| 空值处理 | 是否有 null 检查(有没有准备好备胎) |
| 异常捕获 | 是否有 try-catch(有没有安全气囊) |
| 用户提示 | 错误是否友好展示(出了问题说不说得清) |
6. 审查报告示例
1 | # 代码审查报告 - XX小区XX栋 |
相当于:窗户没关,小偷可以直接进来 建议:装防盗窗(使用参数化查询)
- [安全] 敏感信息泄露 - 第 45 行 相当于:把银行卡密码贴在门上 建议:撕掉,用环境变量
1
console.log('API_KEY:', apiKey)
🟡 中等问题 (3个)
- [性能] N+1 查询风险 - 第 67-72 行
- [规范] 函数过长(86 行)- 第 30-115 行
- [错误] 缺少空值检查 - 第 28 行
🟢 建议 (2个)
- [改进] 可以抽取重复代码
- [文档] 建议添加 JSDoc 注释
总体评分
- 安全性:4/10 ⚠️ (不及格,要紧!)
- 性能:7/10 (还行)
- 可维护性:6/10 (刚刚及格)
- 代码规范:7/10 (还行)
建议优先级
- 🔴 修复 SQL 注入(先修防盗窗!)
- 🔴 删除敏感信息(别把密码贴门上)
- 🟠 优化查询逻辑(少跑腿)
- 🟠 重构过长函数(分工合作) claude –plan –print “审查 src/utils/auth.js 的安全性”
1
2
3
4
5
6
7
---
## 7. 审查技巧:怎么让监理更专业
### 技巧一:使用只读模式重点审查:1
2
3
4
5
6
7
8
9
10
11
只读模式确保:
- 不会意外修改代码——就像监理只看不动手
- 专注于分析——全身心检查
> 就像说:"你就看看,不要动任何东西啊"
---
### 技巧二:指定审查重点 - 安全性(必须查)
- 性能(如果时间允许)
- 其他(可选) 不仅指出问题,还请给出修复代码
1
2
3
4
5
6
7
> 就像说:"这次主要查水电,其他顺带看看"
---
### 技巧三:获取修复建议关于第 23 行的 SQL 注入,能详细解释一下风险吗? ```1
2
3
4
5
6
7
> 就像说:"指出问题不够,你得告诉我怎么修"
---
### 技巧四:追问细节
就像问:“这个洞有多大危害?小偷能进来偷什么?”
本节小结
- 审查类型:快速(巡逻)、全面(验房)、专项(专科)
- 审查重点:安全(防盗)、性能(省料)、规范(整洁)、错误处理(救生圈)
- 输出报告:问题列表 + 评分 + 建议
- 使用技巧:只读模式 + 指定重点 + 追问细节
💡 记住:代码审查就像请监理——花小钱省大麻烦!
下节预告
下一讲:学习自动化测试——用 Playwright 给代码做”体检”
有问题?评论区见!如果觉得有帮助,点个赞再走~
标签: #Claude Code #AI编程 #代码审查 #实战教程