AI 写代码,人要不要读?两位顶级程序员给出截然相反的答案
7 月 23 日,Robert C. Martin(Uncle Bob)在 X 上抛出一句「我完全不读 Agent 写的任何代码」,引爆 480 万+ 次浏览。20 天前,HashiCorp 联合创始人 Mitchell Hashimoto 刚说完「我读代码」—— 两条推文,两种截然相反的做法,把开发者圈卷进了一场持续数周的混战。
7 月 23 日,Robert C. Martin(Uncle Bob)在 X 上抛出一句「我完全不读 Agent 写的任何代码」,引爆 480 万+ 次浏览。20 天前,HashiCorp 联合创始人 Mitchell Hashimoto 刚说完「我读代码」—— 两条推文,两种截然相反的做法,把开发者圈卷进了一场持续数周的混战。
7 月 3 日,HashiCorp 联合创始人、Ghostty 作者 Mitchell Hashimoto 发了一条推文,只有四个词:「I read the code.」 获得近 83 万次浏览。当时正值 Anthropic Fable、GPT-5.6 等新模型发布,Vibe Coding 支持者正觉得「跟着感觉写代码」已经得到验证,这句话很快被解读为对 Vibe Coding 的公开反驳。
20 天后,另一个更具分量的声音加入了争论。Robert C. Martin—— 开发者熟悉的 Uncle Bob,《代码整洁之道》作者,写了 60 年代码的传奇人物 —— 面对同样的问题,给出了截然相反的答案。
「我读代码。」
理解仍然是工程责任的一部分。AI 写的代码,他会逐行阅读。
「我完全不读 Agent 写的任何代码。」
用严格的约束体系替代逐行审查,让测试和验证流程为代码质量负责。
注:两位都是从业超过 40 年的顶级开发者。Uncle Bob 从 20 世纪 60 年代末开始编程,Hashimoto 是 HashiCorp 联合创始人。他们的对立并非技术能力差异,而是对 AI 时代开发者角色的根本性不同理解。
两条推文像两块磁铁,把整个开发者社区的观点吸了出来。没有中间地带,每个人都在被迫选择立场。
Uncle Bob 的做法并非「什么都不做」,而是把精力从阅读代码转移到构建验证体系上。他的策略可以拆解为四个步骤:
约束包括:单元测试、Gherkin 验收测试、QA 流程、质量指标、变异测试、测试覆盖率,以及大量其他机制。当 Agent 生成的代码通过所有这些考验后,他便对最终结果抱有「很高的信心」。
一个诚实的注脚:
有开发者追问,如果真正保障质量的是那些约束,那么谁来保证约束本身是可靠的?Uncle Bob 的回答是:他同样让智能体去编写检查约束的工具。这些工具是确定性的,规模相对较小,同样被大量测试包围。判断工具是否可信的依据,仍然是它能否持续通过验证、稳定完成任务。
这听起来近乎无限递归 —— 智能体写代码,智能体写测试,智能体再写工具检查测试与代码。但 Uncle Bob 的做法并非简单循环,而是通过变异测试和多层级联验证,让篡改测试蒙混过关的难度呈指数级上升。同时,他也会亲自检查 Gherkin 验收测试和 QA 流程,根据任务的关键程度进行全面审核或抽查。
这场争论背后,有一个更根本的问题:你认为自己写的代码究竟有多重要?
Theo 提出的代码分层模型,为这个问题提供了一个清晰的框架。他把代码想象成一条光谱:
过去,手写代码的成本太高,大家几乎把所有时间都花在第三层和第四层,根本没有余力去上面两层做探索。现在,AI 让上面两层的代码变得几乎免费 —— 你应该大量进入这些上层区域,用廉价的代码去验证昂贵的代码,而不是用「所有代码都很重要」这个理由把自己锁死在底层。
这个思路与 Uncle Bob 的方法论本质上相通:用大量廉价代码构建一个测试金字塔,在底部堆满垃圾,用这座塔去保护塔尖上那一小撮真正不能出错的东西。
AI 代码审查之争的真正价值,不在于「读或不读」的二选一,而在于它迫使每一位开发者重新思考:当代码生成成本趋近于零时,软件工程的核心技能正在从「写代码」转向「设计验证系统」。谁先完成这个转变,谁就掌握了下一个时代的生产力。
但每一位开发者都需要做出自己的选择。
你站在哪一边?
欢迎在开发者社区分享你的观点。