内容提要
AI编程代理已主导开发,但多数人不再审查AI代码,导致大量“AI垃圾”。作者借鉴Uncle Bob的做法,不再逐行审查,而是通过约束保证质量:检查项目布局、识别架构坏味道、为每张卡片设定验收条件、用AI交叉审查、要求单元测试与端到端测试。作者强调,可以外包思考,不能外包理解。
延伸解读
不逐行审查不等于放任:约束条件才是质量闸门
文章指出,业界普遍不再逐行审查AI代码,最多加一道AI Code Review就提交,这会产生大量“AI垃圾”。Uncle Bob的做法是干脆不读团队成员写的代码,但前提是设定极高约束:单元测试、Gherkin规范、质量保证流程、质量指标、变异测试、测试覆盖率等。作者借鉴这一思路,说明放弃逐行审查的前提是建立可验证的约束体系,而不是降低质量要求。
作者实际采用的几道检查线
作者对AI生成的Go项目不再审查细节,而是关注项目布局,要求AI把一股脑塞进internal包的代码划分成明确子包;用/smell嗅探架构坏味道,用/refactor重构;用/to-issues生成卡片时给每张卡片设定验收条件,防止偏离需求;用/review-it让AI审查代码,检查单元测试是否足够、核心代码覆盖率、能否编译、lint问题、复杂度阈值和Go惯用法,并尝试用Claude与Codex交叉审查,补充端到端测试。
大佬不谈方法论,读者应保持警惕
文章提到Claude Code负责人Boris、OpenClaw的Peter等人鼓吹不再写代码、开启几十上百个agent开发,却从不真正谈论如何避免slop、如何审查和保证AI生成代码的质量。作者认为他们讳莫如深,可能出于争议、声誉或技术壁垒的考虑。这提醒读者:看到“不写代码只编排Agent”的炫耀时,应追问其质量保障机制,而不是直接照搬。
可以外包思考,不能外包理解
作者强调,不code review不是目标,解放人类让AI代替完成任务才是目标。他仍想理解AI生成的代码,因为面对同一项目中的其他同学时,他希望立即给出协作问题的答案,而不是说“等我问问AI”。文章由此引出核心观点:“你可以外包你的思考,但是你不能外包你的理解。”这意味着即使审查方式改变,工程师对系统的理解责任仍无法转移给AI。
Q&A
为什么现在很多团队不再对AI生成的代码进行Code Review?
因为AI Coding Agent已经全面主导了软件开发,大家基本都不再逐行审查AI写的代码,最多增加一个AI Code Review,通过后就直接提交。
什么是“AI slop”?
“AI slop”指由生成式人工智能大批量、快速产出的低质量、空洞且缺乏人类真诚意图的数字内容,包括文字、图片、视频等。该词被韦氏词典选为年度代表字。
Uncle Bob 不读代码后,用什么方法保证代码质量?
Uncle Bob 不再阅读团队成员编写的任何代码,而是设定极高的约束条件:单元测试、Gherkin 规范、质量保证流程、质量指标、变异测试、测试覆盖率等,通过让代码必须克服这些约束和测试挑战来保证质量。
作者现在不审查AI代码细节后,会关注哪些方面?
作者关注:1)程序布局,避免AI把代码一股脑放在internal包下,要求划分子包;2)使用/smell嗅探架构和设计坏味道,用/refactor重构;3)在/to-issues生成卡片时设定验收条件,防止偏离需求;4)使用/review-it让AI审查代码,检查单元测试覆盖率和代码编译、lint、复杂度、Go惯用法等;5)尝试不同大模型交叉review;6)提供端到端测试。
作者为什么还想理解AI生成的代码?
因为作者面临一个巨大问题:如何面对同一个项目中的其他同学。当其他同学问协作问题时,作者希望能立即给出答案,而不是说“等我问问AI”。
文章的核心观点是什么?
文章核心观点是:可以外包思考,但不能外包理解。不Code Review不是目标,解放人类让AI代替人类完成任务才是目标,但工程师仍需通过约束和验证来保证AI生成代码的质量,并努力理解代码。