
Martin Fowler 是软件开发领域最具影响力的人物之一。他是《敏捷宣言》的作者之一,也是经典著作《重构》(Refactoring)和《企业应用架构模式》的作者。作为 Thoughtworks 的首席科学家,他对技术趋势有着敏锐且深刻的洞察。
在最近的一期 The Pragmatic Engineer 播客中,Martin Fowler 深入探讨了 AI 如何重塑软件工程。
这不仅仅是关于代码生成的效率提升,更是一场关于思维模式、学习循环以及行业未来的深度对话。
以下是本次访谈的深度解读。
一. 从确定性到非确定性:堪比汇编语言的消亡

当被问及 AI 对技术领域的影响可以与历史上的哪次变革相提并论时,Martin Fowler 给出了一个极高的评价:这是他职业生涯中见过的最大变革。
如果要从整个软件开发历史来看,他认为这堪比从汇编语言向高级语言(如 Fortran、Cobol)的转变。
- 抽象层级的提升: 就像高级语言让我们不再需要关注寄存器和内存地址一样,LLM(大语言模型)让我们在更高的抽象层级上工作。
- 核心差异: 但这两次变革有一个本质区别。高级语言的转变是层级的提升,而 AI 的转变是从确定性(Determinism) 到 非确定性(Non-determinism) 的跨越。
过去,我们给计算机指令,结果是确定的。现在,我们面对的是一个概率性的环境。Fowler 指出,这要求软件工程师像结构工程师思考“容差”(Tolerances)一样,学会处理输出的不确定性,而不是盲目信任。
二. 警惕 “Vibe Coding”:不要切断学习反馈循环

“Vibe Coding” 是最近流行的一个术语,指的是程序员只通过自然语言提示(Prompt)让 AI 写代码,自己完全不看生成的代码,只要能运行就行。
Fowler 对此持保留态度。他认为 Vibe Coding 适用于探索性工作或一次性脚本(Throwaways),但对于长期维护的软件来说是危险的。
核心危机在于“学习循环”的断裂:
“当你使用 Vibe Coding 时,你实际上移除了一件非常重要的事情,那就是学习循环(Learning Loop)。”
软件开发的本质是人与机器的反复互动,通过这种互动,开发者建立起对系统的理解。如果你不看代码,你就没有在学习。当你不再学习,你就无法理解系统的结构,也就无法对其进行微调、演进或修复。一旦系统变得复杂且不可控,你只能将其彻底推翻重来。
Fowler 分享了一个案例:他的同事用 LLM 生成了一个 SVG 图表。虽然图表看起来能用,但当 Fowler 打开代码想要微调标签位置时,发现生成的代码结构极其混乱且复杂,远超人工手写的十几行代码。这就导致了维护的噩梦。
三. Thoughtworks 技术雷达:AI 在遗留代码中的巨大价值

Thoughtworks 每半年发布的“技术雷达”(Technology Radar)是行业的风向标。在最新的一期雷达中,AI 相关的条目占据了重要位置。
Fowler 特别提到了一个已经进入“采用(Adopt)”阶段(即强烈推荐使用)的实践:使用 GenAI 理解遗留代码(Legacy Code)。
- 痛点: 任何大型企业都有大量的遗留系统,且原来的开发者可能早已离职。
- AI 的威力: 利用 LLM 对代码进行语义分析,甚至结合图数据库(Graph Database)来追踪数据流向,可以极大地帮助开发者理解复杂的旧系统。
- 现状: 这是一个已经在 Thoughtworks 内部和客户项目中被证明非常成功的应用场景。
相比之下,使用 AI 修改遗留代码仍处于探索阶段,因为风险较高。
四. AI 时代的重构:代码越多,越需要整洁

Fowler 的经典著作《重构》至今已有 25 年历史。在 AI 能够快速生成大量代码的今天,重构是否过时了?
答案恰恰相反。Fowler 认为重构将变得更加重要。
- 低质量代码泛滥: AI 能够以极快的速度生成代码,但往往质量平平。如果只生成不重构,代码库将迅速腐烂。
- 小步快跑: 重构的核心在于“小步骤”和“可组合性”。虽然现在的 AI 工具(如 Cursor、GitHub Copilot)还不能完全自动地进行复杂的架构级重构,但结合人类的判断和 AI 的辅助,我们可以更高效地清理代码。
- 新的工作流: 我们可以利用 LLM 生成代码,然后由人类工程师进行严格的审查和重构,将其打磨成高质量的软件。
五. 敏捷与模式:在 AI 时代寻找新的平衡

关于设计模式(Design Patterns): Fowler 承认,过去十年设计模式的讨论热度有所下降。部分原因是云服务(Cloud)和 SaaS 产品的兴起解决了许多底层的架构问题(如数据库分片、消息队列等)。但他认为,建立一套通用的词汇(Vocabulary)来描述系统依然至关重要,特别是在分布式系统领域。
关于敏捷(Agile): 作为《敏捷宣言》的签署人之一,Fowler 回忆了敏捷运动的初衷:让开发团队能够以小批量、高频率的方式交付软件。
在 AI 时代,虽然生产代码的速度变快了,但反馈循环(Feedback Loops) 依然是核心。如果 AI 只是让我们更快地制造更大的“代码块”,那我们将重蹈覆辙。正确的方式是利用 AI 缩短从“想法”到“运行代码”的周期,实现更快的迭代。
六. 给初级工程师的建议:寻找导师,保持怀疑

对于在 AI 时代起步的初级工程师,Fowler 给出了非常务实的建议:
- 寻找导师: 尽管有 AI 助手,但一位经验丰富的人类导师依然是无价之宝。他们能教你那些 AI 无法传授的判断力和行业直觉。
- 不要轻信 AI: AI 是“容易受骗且爱撒谎的”。Fowler 提到 LLM 经常产生幻觉(Hallucinations),甚至在简单的日期问题上也会出错。
- 多问“为什么”: 当 AI 给出一个解决方案时,问它“为什么这样做?”、“你的来源是什么?”。通过不断追问,利用 AI 来辅助理解,而不是仅仅获取答案。
七. 行业现状:泡沫与萧条共存

Fowler 对当前的科技行业做出了冷静的观察:我们正处于一个奇怪的时期——AI 的泡沫与行业的萧条同时存在。
- 萧条: 零利率时代的结束导致企业投资大幅缩减,许多公司经历了大规模裁员。
- 泡沫: 与此同时,大量的资金涌入 AI 领域。
虽然目前形势复杂,但 Fowler 对软件开发的长期前景依然乐观。因为人类对软件的需求,即解决复杂问题的需求远未饱和。AI 不会消灭软件开发,但会彻底改变我们工作的方式。
结语
Martin Fowler 的观点提醒我们,在 AI 浪潮中,不要被技术的光环迷了眼。软件工程的核心依然是沟通、理解问题以及构建可维护的系统。
AI 是一个强大的引擎,但方向盘依然掌握在人类工程师手中。我们需要从盲目的“代码生成”转向更深层次的“系统理解”与“架构设计”。
在访谈最后,Fowler 还向大家推荐了两本书和一个桌游:
- 桌游:Concordia,一款策略性强但易于上手的桌面游戏。
【全文完】

广告时间
我建了一个相关的付费微信群,这个群大概会涉及到的一些内容:
- 与 AI 相关的一手信息分享
- 围绕 AI 时代如何学习与创造的实践分享
- 不定时的直播分享
- 群友自由讨论交流
感兴趣的可以单独加我上面的微信,麻烦备注 “申请入群”,期待更多有趣、深入的讨论!
注:为了保证社群交流的质量,设了一个门槛费用,99 元/人/永久!若介意,请勿扰!
另外,符合下面条件的,可申请折扣或免费加入:
- 在读学生,29 元/人
- 以前参加过我在竹白发起的针对小朋友的 dailyup 每日挑战的付费朋友,可免费加入
- 有其它正当理由,希望折扣或免费加入的朋友
访谈视频:How AI will change software engineering – with Martin Fowler
