无人阅读的代码

📌 One-Sentence Summary
Addy Osmani 认为,尽管逐行代码审查因 AI 智能体而逐渐消亡,但人类问责与独立验证必须取而代之;停止阅读而不建立稳健的检查机制将导致灾难性失败。
📝 Summary
Osmani 重新审视了他此前关于审查所有 AI 生成代码的建议,指出虽然每个变更仍然需要有人负责,但审查方式正在发生转变。他对比了两篇近期热传的文章:一篇预测代码审查将消亡(Thorsten Ball),另一篇描述了盲目批准 AI 代码的痛苦(v0xium)。Osmani 认为,只有当行业拥有了替代性的信任机制——具体而言,即低成本的自动化检查和清晰的爆炸半径边界——才会停止阅读大部分代码。他重点介绍了 Anthropic 的内部实践,即自动化审查者捕获 bug,但由人类决定什么可以发布,并指出审查此前承担的教育和文化功能如今需要显式文档化。文章警告不要在未以严格验证替代的情况下移除人类监督,强调测试必须独立于代码生成器(引用 SQLite 和航空标准),以避免奖励黑客行为。最终,他建议工程师专注于理解意图和保持问责,而非仅仅打字或按回车键。
💡 Main Points
对于非关键变更,逐行代码审查正在变得过时,但人类所有权和决策仍然至关重要。
随着 AI 生成越来越多的代码,瓶颈从编写转向验证。团队必须将信任从 diff 本身转移到外部检查(测试、静态分析)和清晰的风险区域。人类应基于爆炸半径和敏感性来批准合并,而非逐行阅读。
传统代码审查的主要价值往往在于知识共享和团队规范,而不仅仅是发现 bug。
微软研究表明,只有 14% 的审查评论涉及缺陷。随着 AI 接管缺陷检测,团队将失去隐性的导师指导和上下文共享收益,除非这些被显式地编码为技能、文档或结构化结对会话。
在未实施稳健独立验证的情况下停止代码阅读,会制造危险的「速度陷阱」。
如果团队移除人工审查但没有建立有效的自动化检查,他们只是把一个未知的积压换成了一个已知但无法修复的积压。这会导致技术债务累积和昂贵的失败,最终在生产环境中暴露,正如「按回车键」的轶事所展示的那样。
测试必须独立于代码生成器,才能提供真正的保证。
AI 模型可以通过编写轻易通过的测试(例如在断言之前退出)来进行「奖励黑客」。真正的独立性来自不同的真相来源,如规格说明、参考实现(例如 GCC),或具有不同上下文的独立智能体实例,类似于航空标准(DO-178C)。
工程师需要保持自己的判断力和可解释性,以维持问责。
开发者应确保自己能够解释一个变更做了什么以及为什么它是安全的,即使他们没有编写每一行代码。保持手动编码练习有助于保留有效监督 AI 智能体所需的「监督悖论」技能。
💬 Key Quotes
你不需要阅读所有代码。每个变更仍然需要一些审查,每个变更仍然需要一个拥有发布决策权的人。
一个描述了目的地。另一个描述了当一家公司没有修路就开过去时会发生什么。
审查从来都不是主要关于 bug 的,这就是为什么「机器会审查它」这个答案比听起来要弱。
智能体做第一遍,人类覆盖爆炸半径。
你只能真正为你能够解释的事情负责。
赢的团队不是什么都不读的团队。而是知道什么值得读的团队。
测试作为对你并不完全信任的作者的独立检查,将是你拥有的最有价值的代码。
📊 Article Meta
AI Screening: 91
Featured: Yes
Source: Elevate
Author: Addy Osmani
Category: 软件编程
Language: 英文
Read Time: 18 min
Word Count: 4290
Tags:
编程与工程 , AI 编程 , 代码质量 , 测试与质量 , 开发者工具
暂无评论,快来抢沙发~