乐于分享
好东西不私藏

AI 写代码越写越烂?因为你丢了软件基础.AI 时代最该读的四本书,Matt Pocock 替你列好了

AI 写代码越写越烂?因为你丢了软件基础.AI 时代最该读的四本书,Matt Pocock 替你列好了

AI 写代码越写越烂?因为你丢了软件基础。AI 时代最该读的四本书,Matt Pocock 替你列好了  

   2026 年,AI 编程席卷一切。一个教 TypeScript 的人,站上 AI Engineer Summit 的舞台。他说了句全场开发者都想听的话:你的技能没过时。软件基础,比以往任何时候都重要。 

今年 AI Engineer Summit,Matt Pocock 的 18 分钟闪电演讲火了。

他不是来卖 AI 工具的。他是来告诉你:别急着扔掉那些经典软件工程书。John Ousterhout、Fred Brooks、Kent Beck、Eric Evans。这些名字,在 AI 时代不但没过时,反而成了你最硬的通货。


Spec-to-Code 的陷阱:每次循环,代码更烂

Matt 开场就讲了个场景。在场大多数人,都经历过。

有一种叫 Spec-to-Code 的 AI 编码模式。你写一份需求规格说明,AI 生成代码。出了 bug?别碰代码。回去改 spec,重新生成。

听起来很美好。Matt 试了。结果:

   第一次跑:拿到代码。第二次跑:更烂的代码。第三次跑:更更烂的代码。一直跑到最后,垃圾。 

他引用《程序员修炼之道》解释这个现象:软件熵(Software Entropy)。每次你只盯局部改动,不想系统整体设计。代码库就往崩溃方向滑一步。AI 把这个过程加速了。

Spec-to-Code 的主张是「代码很廉价」(code is cheap)。Matt 不买账:

   烂代码是史上最贵的代码。代码库不可改,你就接不住 AI 能给你的生产力红利。 

把 AI 编码失败映射回经典理论

Matt 干了件很聪明的事。他不跟 AI 工具的 hype 对轰。而是翻出经典软件工程著作。一条一条,把你遇到的 AI 编码问题,映射回去:

你遇到的问题
哪本书早就讲过
AI 不听你的,做出来完全不对
Frederick Brooks,《设计的设计》:「设计概念」
AI 啰嗦得要死,沟通效率极低
Eric Evans,《领域驱动设计》:「统一语言」
AI 一次写太多,跑不起来
《程序员修炼之道》:「跑得比大灯快」
代码越改越难改
John Ousterhout,《软件设计的哲学》:「复杂度」定义

这招高级。观众对 AI 编码,没有成熟的评判框架。但这些经典,他们有信任。你说「AI 的问题,其实就是 Ousterhout 说的复杂度问题」。瞬间通了。


五个技巧,从沟通到架构

Matt 给了 5 个实操 skill。全部开源在 MattPocockSkills。它们不是并列的清单。是一层一层往下走的:

技巧 1:Grill Me(拷问我)

关键就两句话:

   Interview me relentlessly about every aspect of this plan until we reach a shared understanding. Walk down each branch of the design tree, resolving dependencies between decisions one by one.

  (无情地盘问我这个计划的每一个方面,直到我们达成共识。沿着设计树的每个分支走,逐一解决决策之间的依赖关系。)

让 AI 在写代码之前,先反问你 40 到 100 个问题。不是帮你写代码。是帮你想清楚,你到底要什么。

Matt 说,这个 skill 的 GitHub 仓库已经 13,000+ 星。他直言,这比 Claude Code 自带的 plan mode 好用。「plan mode 太急于产出资产了。它只想赶紧搞个计划然后开干。」而不是先达成共同设计概念。来自 Frederick Brooks。

技巧 2:统一语言(Ubiquitous Language)

你有没有觉得 AI 特别啰嗦?Matt 说,根因是你们没有共享术语。

他借鉴 DDD 的「统一语言」概念,写了个 skill。扫描你的代码库,自动生成一个术语表 Markdown 文件。所有 AI 对话,都引用这个文件。

效果?AI 思考更简洁。它不用每次对话都重新猜你的术语含义。Matt 原话:「读 AI 的思维轨迹时发现,不光是规划更好了。AI 的思考也更精简了。」

技巧 3:TDD,强制小步迭代

AI 的默认行为:一次性生成巨量代码。然后才想起来去类型检查。Matt 管这叫 outrunning your headlights(跑得比大灯快)。来自《程序员修炼之道》的比喻:反馈速度,就是你的限速。

TDD 是解药。先写测试。让测试通过。再重构。强迫 AI 走小步。Matt 特别强调:

   好代码库 = 容易测试的代码库。代码库越好,反馈循环越好。反馈越好,AI 产出的代码越好。 

正反馈循环。起点,是代码库质量。

技巧 4:深层模块 > 浅层模块

回到 John Ousterhout 的分类:

  • Deep Module(深层模块)
    :大量功能藏在简洁接口后面。想看内部可以看,但不需要看,直接用接口。
  • Shallow Module(浅层模块)
    :功能没多少,接口却很复杂。

Matt 说,AI 天然擅长创建浅模块密集的代码库。一大堆零散的小函数和小文件。但反过来,这种代码库对 AI 自己是灾难。它探索代码时,被碎片海淹没。「AI 搞不懂你的代码在做什么。」

解法:持续重构。扫描代码库,找相关代码,封装成深层模块。

技巧 5:设计接口,委托实现

五个技巧的终极形态:人在战略层,AI 在战术层。

  • 你设计模块边界和接口(需要软件基础)
  • AI 实现接口内部的细节(被测试边界约束)
  • 你在接口处写测试验证 AI 的产出

Matt 原话:「我直接说,AI,大块里面的东西交给你。我只需从外面测试验证。这真的拯救了我的大脑。」


一个军事比喻

Matt 用了个很到位的类比收尾:

   AI 是非常优秀的一线程序员。战术层面,在战壕里改代码的士官。

  但你需要有人在战略层面思考。那个人是你。

  这需要我们已经用了 20 年甚至更久的软件基础技能。

Kent Beck 的话:Invest in the design of the system every day.(每天投资于系统的设计。)

Spec-to-Code 是在撤资。你在做的,才是投资。


两种范式

Spec-to-Code
软件基础驱动
写 spec → AI 生成 → 改 spec → 再生成
Grill Me 共识 → 统一语言 → TDD → Deep Module
不看代码
设计接口,AI 填实现
代码质量持续下降
代码质量持续改善
人越来越被动
人越来越像将军

这些书你一定要读

Matt 整场演讲引了四本经典,外加 Kent Beck。如果你只读其中一本,从 Ousterhout 开始。

《软件设计的哲学》

A Philosophy of Software Design — John Ousterhout

薄薄一本,不到 200 页。但每一章都在抽你耳光。Ousterhout 是斯坦福教授。整本书只讲一件事:复杂度从哪来,怎么消灭它。「Deep Module」(深层模块)这个概念,就是这本书提出来的。大量功能藏在简洁接口后面。Matt 演讲里反复引用的复杂度定义,也出自这里。如果你写代码超过两年,这本书会让你重新审视每一个 export

《程序员修炼之道》

The Pragmatic Programmer — Andy Hunt & Dave Thomas

软件工程界最接近「圣经」的东西。1999 年出第一版。20 周年出第二版,几乎重写全部内容。「破窗理论」「软件熵」「跑得比大灯快」「石头汤」。无数经典隐喻,来自这本书。Matt 用「反馈速度就是你的限速」解释 TDD。源头就在这。不用从头读到尾。随便翻开一章,都能学到东西。

《设计的设计》

The Design of Design — Frederick P. Brooks

Brooks 就是《人月神话》的作者。你肯定听说过那本。这本是他晚年对设计的反思。Matt 引用的「设计概念」(Design Concept),是主要论点。多人协作设计时,有个无形的、飘在你们中间的「共同理解」。它没法写进文档。但一旦丢了,整个设计就散架。这也是 Grill Me skill 的理论基础。

《领域驱动设计》

Domain-Driven Design — Eric Evans

2003 年出版的「大蓝书」。DDD 在 AI 时代突然翻红,不是偶然。它会逼你建立一套术语体系,开发者和领域专家共用(Ubiquitous Language)。这正好是跟 LLM 高效协作的必需品。Matt 说,他「读到每一页都像在听音乐」。还基于统一语言概念做了个 skill。书很厚,不用一次读完。先看 Part II(模型驱动设计的构建块)和 Part III(重构加深理解)。

题外话:Kent Beck

Matt 结尾引了句「Invest in the design of the system every day」。出自 Kent Beck。Beck 是 TDD 和极限编程(XP)之父。也是敏捷宣言的签署人。他不算「一本书」。但他写了两本,你应该知道:《测试驱动开发》(Test-Driven Development: By Example),TDD 的开山之作。《解析极限编程》(Extreme Programming Explained),XP 的精髓。Matt 的第三个技巧,TDD 强制小步迭代,底层就是 Beck 的方法论。


小结

Matt Pocock 这场演讲为什么炸?因为他说了个反直觉的真相:

   AI 编程工具越好用,好代码库和烂代码库之间的差距就越大。 

好代码库里,AI 如虎添翼。烂代码库里,AI 加速腐烂。

你的软件基础技能:模块设计、接口定义、测试策略、领域建模。以前值钱,现在更值钱。它们决定你能从 AI 那里撬出多少生产力。


素材来源

  • 视频:Software Fundamentals Matter More Than Ever — Matt Pocock at AI Engineer Summit