AI 代码的 Code Review 清单

本节目标

4 类审查清单:

【正确性】是否处理了边界/异常?是否有隐藏的 off-by-one、空值?
【安全】  有没有硬编码密钥、SQL 拼接、eval、危险依赖?
【性能】  有没有 O(n²) 循环、无限制的数组增长、N+1 查询?
【可维护】命名清楚吗?有魔法数字吗?结构和你项目一致吗?

逐条打法:把 AI 给的代码逐段过这 4 类,每条要么"通过"要么"记下要改"。不要整体扫一眼就合并。

示例红旗:

// ⚠️ 红旗:SQL 拼接(注入风险)
db.query(`SELECT * FROM u WHERE name='${name}'`)
// ✅ 改为参数化
db.query('SELECT * FROM u WHERE name=?', [name])

名词解释

课后练习

  1. 为什么 AI 生成的代码"能跑"也仍需 Review?
    • 答案:能跑只说明无语法/运行错误,不保证安全(注入)、正确(边界)、可维护;AI 会"自信地"写出带隐患的代码。
  2. 上面 SQL 拼接除了注入,还有什么问题?
    • 答案:单引号、特殊字符会直接破坏语句导致报错;参数化同时解决安全性和健壮性。

总结

"AI 写的代码也要 Review"是这一章的灵魂。很多人以为 Vibe Coding 省掉了审查环节,恰恰相反——正因为代码不是你逐行写的,你更该用清单把它"盯"一遍。我给出的 4 类清单(正确/安全/性能/可维护)不是新发明,而是把资深工程师脑内的审视外化成可勾选的项。特别要警惕"能跑的假象":AI 特别擅长产出"语法正确、逻辑埋雷"的代码,比如一句 SQL 拼接就让整个系统门户洞开。所以请把"信任但验证"刻进流程:AI 大大降低了写的成本,但把"把关"的责任更重地压回你肩上。审查不是不信任 AI,而是对自己交付的系统负责。