AI 写代码越写越烂因为你丢了软件基础。AI 时代最该读的四本书Matt Pocock 替你列好了2026 年AI 编程席卷一切。一个教 TypeScript 的人站上 AI Engineer Summit 的舞台。他说了句全场开发者都想听的话你的技能没过时。软件基础比以往任何时候都重要。今年 AI Engineer SummitMatt 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。它们不是并列的清单。是一层一层往下走的技巧 1Grill 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 的思考也更精简了。」技巧 3TDD强制小步迭代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. BrooksBrooks 就是《人月神话》的作者。你肯定听说过那本。这本是他晚年对设计的反思。Matt 引用的「设计概念」Design Concept是主要论点。多人协作设计时有个无形的、飘在你们中间的「共同理解」。它没法写进文档。但一旦丢了整个设计就散架。这也是 Grill Me skill 的理论基础。《领域驱动设计》Domain-Driven Design— Eric Evans2003 年出版的「大蓝书」。DDD 在 AI 时代突然翻红不是偶然。它会逼你建立一套术语体系开发者和领域专家共用Ubiquitous Language。这正好是跟 LLM 高效协作的必需品。Matt 说他「读到每一页都像在听音乐」。还基于统一语言概念做了个 skill。书很厚不用一次读完。先看 Part II模型驱动设计的构建块和 Part III重构加深理解。题外话Kent BeckMatt 结尾引了句「Invest in the design of the system every day」。出自 Kent Beck。Beck 是 TDD 和极限编程XP之父。也是敏捷宣言的签署人。他不算「一本书」。但他写了两本你应该知道《测试驱动开发》Test-Driven Development: By ExampleTDD 的开山之作。《解析极限编程》Extreme Programming ExplainedXP 的精髓。Matt 的第三个技巧TDD 强制小步迭代底层就是 Beck 的方法论。小结Matt Pocock 这场演讲为什么炸因为他说了个反直觉的真相AI 编程工具越好用好代码库和烂代码库之间的差距就越大。好代码库里AI 如虎添翼。烂代码库里AI 加速腐烂。你的软件基础技能模块设计、接口定义、测试策略、领域建模。以前值钱现在更值钱。它们决定你能从 AI 那里撬出多少生产力。素材来源视频Software Fundamentals Matter More Than Ever — Matt Pocock at AI Engineer Summit