Skip to content

Matt Pocock:AI 时代软件基础比以往更重要

Matt Pocock
时代软件基础比以往更重要 —— 演讲学习笔记

来源:微信公众号文章 https://mp.weixin.qq.com/s/QRA_MwrI4Loau8ZdsNF2Og(公众号「老丁888」整理稿) 原始素材

Fundamentals Matter More Than Ever — Matt Pocock at AI Engineer Summit(视频) 性质
编程方法论演讲笔记,核心是”AI 时代经典软件工程理论反而更值钱”

一句话

AI 编程工具越好用,好代码库和烂代码库之间的差距就越大:好代码库里 AI 如虎添翼,烂代码库里 AI 加速腐烂。软件基础(模块设计、接口定义、测试策略、领域建模)决定你能从 AI 撬出多少生产力。

核心痛点
的陷阱

  • 模式:写需求规格 → AI 生成代码 → 出 bug 改 spec → 重新生成
  • 实测结果:第一次能跑,第二次更烂,第三次更更烂,循环到底就是垃圾
  • 理论依据(《程序员修炼之道》):软件熵 —— 每次只盯局部改动、不想系统整体设计,代码库就朝崩溃方向滑一步;AI 把这个过程加速了
  • 反驳”代码很廉价”:烂代码是史上最贵的代码。代码库不可改,就接不住 AI 的生产力红利

把 AI 编码失败映射回经典理论(本文最精彩的框架)

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

套路:观众对 AI 编码没有成熟评判框架,但对经典有信任。说”AI 的问题其实就是 Ousterhout 说的复杂度问题”,瞬间通了。

五个开源技巧(mattpocock/skills,层层递进)

  1. Grill Me(拷问我):写代码前让 AI 反问 40-100 个问题,直到达成共同理解,沿设计树分支逐一解决决策依赖。不是帮写代码,是帮你想清楚要什么。直言比 Claude Code 的 plan mode 好用(“plan mode 太急于产出资产,只想赶紧搞个计划然后开干”)。
  2. 统一语言(Ubiquitous Language)
    啰嗦的根因是没共享术语。扫描代码库自动生成术语表 Markdown,所有 AI 对话引用它。效果
    思考轨迹更精简,不用每次重新猜术语含义。
  3. TDD 强制小步迭代
    默认一次性生成巨量代码再检查类型 = “跑得比大灯快”。反馈速度就是你的限速。先写测试→通过→重构。好代码库 = 容易测试的代码库 → 反馈循环好 → AI 产出好(正反馈)。
  4. 深层模块 > 浅层模块
    Module(大量功能藏在简洁接口后)vs Shallow Module(功能少接口复杂)。AI 天然擅长制造浅模块密集的碎片化代码库,但对 AI 自己是灾难——探索时被碎片海淹没。解法:持续重构,把相关代码封装成深层模块。
  5. 设计接口,委托实现(终极形态):人在战略层,AI 在战术层。你设计模块边界和接口 → AI 实现接口内部细节(被测试边界约束)→ 你在接口处写测试验证 AI 产出。“大块里面的东西交给你,我只从外面测试验证,这真的拯救了我的大脑。“

军事比喻

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 填实现
代码质量持续下降代码质量持续改善
人越来越被动人越来越像将军

四本书(只读一本就从 Ousterhout 开始)

  1. 《软件设计的哲学》 A Philosophy of Software Design — John Ousterhout。不到 200 页,整本只讲一件事:复杂度从哪来、怎么消灭。“Deep Module”概念出处。写码超两年的人会重新审视每一个 export。
  2. 《程序员修炼之道》 The Pragmatic Programmer — Andy Hunt & Dave Thomas。1999 初版,20 周年重写第二版。“破窗理论""软件熵""跑得比大灯快""石头汤”的源头。不必顺序读,随手翻开一章都能学到东西。
  3. 《设计的设计》 The Design of Design — Frederick P. Brooks(人月神话作者晚年反思)。核心论点”设计概念”:多人协作时有个无形、飘在中间的”共同理解”,写不进文档,一旦丢了整个设计散架。Grill Me 的理论基础。
  4. 《领域驱动设计》 Domain-Driven Design — Eric Evans。2003 “大蓝书”。统一语言正好是 LLM 高效协作的必需品。先读 Part II(模型驱动设计的构建块)+ Part III(重构加深理解)。
  • 题外
    Beck(TDD/XP 之父、敏捷宣言签署人)——《测试驱动开发》开山之作、《解析极限编程》XP 精髓。

数据核验(2026-08-11, GitHub API)

  • 文章称”Grill Me 仓库 13,000+ 星”:无独立 grill-me 仓库(API 404),Grill Me 是 mattpocock/skills 内的一个 skill
  • 实际仓库 mattpocock/skills
    212,704 | forks 18,379 | 创建 2026-02-03 | 最近 push 2026-08-07(活跃维护)
  • 中文复刻
    /mattpocock-skills-zh(185 stars,基于官方仓库每日同步)

横向对比
时代三种开发范式

维度本文方案(软件基础驱动)Spec-to-Code 纯生成传统人工编码
核心理念人定接口,AI 填实现,测试兜底spec 即代码,改 spec 重生成全部人手写
证据支撑经典理论映射 + 实战(21 万星)现象级但作者实测失败20 年工程实践
适用范围有测试基础的中大型代码库原型/一次性脚本/小工具一切场景(效率最低)
争议点要求开发者有软件功底代码熵随循环累积跟不上 AI 时代节奏

领域趋势

协作正从”生成更多代码”转向”约束 AI 产出质量”,本文是”约束派”代表声音,与 vibe coding 对立的另一极。

个人提炼

  1. 澄清前置 > 生成
    Me 反问我 40-100 问的做法的本质是”用 AI 的提问能力做需求澄清”,与我自己 grilling/to-spec 技能同源,可交叉验证。
  2. 术语表注入:项目级 glossary.md 注入所有 AI 对话,是低成本高杠杆的做法,立即可用。
  3. 接口即测试边界:把 AI 限制在”接口内部实现”,人在接口处写测试——这是把 TDD 和 AI 结合的最清晰范式。
  4. 数字警惕:公众号文章里的 GitHub 数字经常过时或失真(13k vs 实际 212k),重要引用必须 API 核验。