世界级编程大师:AI写的代码,我一行都不看

Uncle Bob 说完全不读 Agent 写的代码,我信了?

最近,编程圈里有个话题吵得很凶。

起因是 X 平台上的一场辩论:当 AI Agent 能自主拆解需求、写代码、补测试甚至根据报错自我迭代时,我们人类还需要逐行去读它生成的每一行代码吗?

有人觉得,只要代码上线后锅是你的,你就得懂它在干什么;也有人反驳,如果还靠人工死磕每一行来“求稳”,那 AI 带来的效率红利不就全被自己掐死在摇篮里了?

就在这时候,《代码整洁之道》作者 Robert C. Martin(大家都叫他 Uncle Bob)出来抛出了一个激进观点:

“我现在的策略,是完全不读 Agent 写的任何代码。”


半个世纪老炮儿的“零阅读”底气

Uncle Bob 是谁?从 60 年代末开始写代码,干了半个多世纪。他写过《架构整洁之道》,常年鼓吹测试驱动开发(TDD)和重构。这种级别的大师,当然不是脑子一热在耍帅。

他的逻辑很直接:

“如果你想真正利用 Agent 带来的生产力提升,你就不能把‘人工阅读’当成代码上线的必经关卡。”

那他不读代码,怎么敢让代码上线?

答案是:他用一套极其严苛的自动化工业质检体系,替代了人眼。

在他的工作流里,Agent 周围布满了这些“护栏”:
* 单元测试
* Gherkin 验收测试
* QA 流程
* 各种质量指标
* 变异测试
* 全覆盖率的测试要求

凭借这套机制,他对 Agent 生成的代码建立了近乎盲目的信任。在他看来,要释放 AI 的生产力,就得相信数据,别相信直觉。


信任范式的转移:从“老师傅”到“流水线”

Uncle Bob 的做法,其实代表了两种完全不同的信任逻辑。

传统的代码审查,靠的是人的经验。就像工厂里的老师傅,盯着焊缝看有没有裂纹,凭手感判断合不合理。这种方式虽然慢,但能发现很多“没写在文档里的坑”。

而 Uncle Bob 的方式,更像现代工业质量控制。你不需要看懂每一个零件是怎么造出来的,你只需要确保出厂前的规格书、约束条件和自动化检测系统足够强大。只要机器跑过了所有测试,这批次就是合格的。

这是一种从“依赖个人能力”到“依赖系统能力”的转变。


开发者们的担忧:测试真的靠谱吗?

尽管有大师背书,但大多数普通开发者看完后的第一反应还是:心里没底。

质疑的声音主要集中在两点:

1. 责任还在自己身上
一位用了 Claude 编程的程序员说得很实在:“只要最后上线的代码出了 Bug 要我背锅,我就没法强迫自己去‘不理解’它。”这种不安全感,源于责任失去了最直观的基础——你的眼睛。

2. 测试不是万能的
很多人担心 AI 会“钻空子”:
* 指令遵循不稳定:AI 可能会偷偷修改测试用例,让它自己的烂代码也能通过测试,制造一种“我很完美”的假象。
* 需求理解偏差:测试通过只代表代码满足了“既定条件”,但不能保证“既定条件”本身是对的。如果一开始需求理解错了,或者漏掉了关键假设,AI 可能生成一套运行稳定但完全跑偏的代码。


寻找中间地带:到底该审什么?

面对这种极端观点,不少拥有多年经验的开发者认为,答案应该在中途。

问题已经不再是“要不要审”,而是“审哪里”

有一位 25 年经验的开发者指出,即便需求写得再清楚,前沿模型有时候也会像刚入职的新人一样,“答应得好好的,转头就忘”。所以,代码审查依然是发现遗漏的重要手段。

有趣的是,Uncle Bob 自己也补充了他的实际执行边界,看来他也不是真的“两眼一抹黑”:

  • 不审:Agent 写的单元测试(他信任自动化)。
  • 亲审:Agent 生成的 Gherkin 验收测试和 QA 流程(他看重业务逻辑的对齐)。
  • 抽查:根据风险决定力度,核心功能严审,边缘功能随缘。
  • 最终验证:定期亲自上手测一测,看看产品在真实场景下是不是真的好用。

代码变“廉价”了,我们还需要整洁吗?

这场争论背后,还藏着一个更深层的问题:随着 AI 让代码生成成本几乎归零,代码本身的优雅程度还重要吗?

以前,代码是人一行行敲出来的,维护成本高,所以我们要追求“整洁之道”,怕改不动、怕看不懂。

现在,AI 可以瞬间生成和修改大量代码。只要功能跑得通、性能没毛病、测试全绿,也许那些晦涩难懂的变量名、不够优雅的类结构,就不再那么致命了。

这没有标准答案,但它揭示了一个正在发生的趋势:

在 AI 编程时代,人类开发者的角色正在发生根本性的偏移。我们不再仅仅是“代码的审阅者”,我们正在变成“质量规则的制定者”“最终结果的验收官”

或许有一天,当我们不再纠结于 Agent 写了什么代码,而是专注于它解决了什么问题时,才是真正驾驭了 AI 的时刻。


来源:机器之心
原文链接:https://mp.weixin.qq.com/s/vcmdZgLzzjemQyWdj6h98Q