ARTICLE · 软件编程
“AI 写的代码,我完全不看”,世界级编程大师 Bob 大叔警示:说软件基础不重要的人会吃苦头,不会等太久
一语总结Bob 大叔与 Matt Pocock 对谈探讨 AI 时代软件开发新范式:通过确定性工具而非人工逐行审查来保证 Agent 代码质量,强调软件基础在 AI 时代依然至关重要。
本文整理自 Bob 大叔(Robert C. Martin)与 TypeScript 教育家 Matt Pocock 的直播对谈。Bob 大叔分享了他近期让 AI Agent 写代码的实践:不再逐行检查代码,而是通过单元测试、Gherkin 测试、CRAP 分数、变异测试等确定性工具建立质量保障体系。他解释了为何确定性工具优于长 Prompt 引导——模型存在「中段丢失」现象,而工具不会因规则位置而改变行为。文章还讨论了多智能体协同工作流(规格定义器、编码器、清理器、强化器、QA Agent 的分工),以及对「规格驱动开发」的批评,主张回归敏捷的增量迭代。最后,Bob 大叔强调软件基础永不过时,建议新手先「扮演」Agent 几个月来理解代码质量,从二进制、汇编一路学到战略编程。
- 用确定性工具替代人工逐行审查来保证 Agent 代码质量。
Bob 大叔通过单元测试、CRAP 分数、变异测试等自动化工具建立质量保障,而非依赖人工 Code Review。确定性工具不会像模型那样因上下文长度而忽略规则。
- 长 Prompt 引导存在「中段丢失」问题,确定性工具更可靠。
模型在长上下文中会忽略中间位置的信息,而 CRAP、变异测试等工具不受此影响,能稳定执行质量检查。
- 多智能体协同通过任务拆分提升上下文控制力。
将规格定义、编码、清理、强化、QA 分工给不同 Agent,每个 Agent 聚焦单一任务,减少上下文混乱,同时可通过并行运行提升效率。
- 批评「规格驱动开发」,主张回归敏捷增量迭代。
Bob 大叔认为过度前期规划会导致 Agent 偏离方向,应像传统敏捷一样先做一点、获取反馈、再调整,而非追求完美规格。
- 软件基础在 AI 时代依然至关重要。
新手应先「扮演」Agent 几个月,经历同样的确定性工具约束,从二进制、汇编一路学到战略编程,才能真正理解代码质量与架构设计。
“AI 写的代码,我完全不看”,世界级编程大师 Bob 大叔警示:说软件基础不重要的人会吃苦头,不会等太久
本文整理自 Bob 大叔(Robert C. Martin)与 TypeScript 教育家 Matt Pocock 的直播对谈。Bob 大叔分享了他近期让 AI Agent 写代码的实践:不再逐行检查代码,而是通过单元测试、Gherkin 测试、CRAP 分数、变异测试等确定性工具建立质量保障体系。他解释了为何确定性工具优于长 Prompt 引导——模型存在「中段丢失」现象,而工具不会因规则位置而改变行为。文章还讨论了多智能体协同工作流(规格定义器、编码器、清理器、强化器、QA Agent 的分工),以及对「规格驱动开发」的批评,主张回归敏捷的增量迭代。最后,Bob 大叔强调软件基础永不过时,建议新手先「扮演」Agent 几个月来理解代码质量,从二进制、汇编一路学到战略编程。
文章金句
"我完全不看 Agent 写出来的任何代码。
"模型对待规则的态度,特别像《加勒比海盗》里的「海盗法典」——听起来是规则,但对它们来说,更像是一堆「建议」。
"软件是人类迄今为止尝试过的最复杂的东西,比我们做过的任何其他事情都要复杂。
"现在有些人认为软件基础已经不重要了。他们会吃到苦头,而且不会等太久。
"源代码依然存在,只是已经不再由人类编写。