我有一阵子没在这里写东西了。

不是因为我没有观点了。

那才让人担心。

我只是厌倦了那没完没了的:

  • AI 会取代开发者
  • AI 永远不会取代开发者
  • 这个模型改变了一切
  • 这个智能体改变了一切
  • 软件工程已死
  • 软件工程从未如此重要

所以我停笔了一段时间。

AI 可没停。

现在回来,有一件事感觉相当明显:

AI 变强了。

软件没有。

模型更好了。

编程智能体更好了。

一个下午能生成的代码量,说实话,跟一年前比简直离谱。

然而不知怎的,我们仍然有:

  • 过度设计的后端
  • 围绕一个简单数据库调用套七层抽象
  • 依赖地狱
  • 没人要的功能
  • 微服务在解决根本不存在的问题
  • 团队骄傲地以机器速度交付复杂性

所以也许代码生成从来就不是瓶颈。

也许我们只是希望它是。


写代码从来都不是最难的部分

开发者喜欢把编程说得好像价值全在于敲出实现。

我不这么认为。

难的部分一直是决定:

这东西该存在吗?

这真的是正确的解决方案吗?

我们在解决真正的问题吗?

这需要再加一层吗?

这个能不能直接删掉?

你咖啡还没喝完,AI 就能给你 600 行看起来完全像样的代码。

但这并不意味着那 600 行就该存在。

而这就是我认为 AI 让事情变得有点危险的地方。

它消除了摩擦。

听起来很棒。

但摩擦有时能让我们免于自己那些糟糕透顶的想法。

以前,如果你想构建一个没必要那么复杂的系统,你至少得为此受点罪。

现在一个智能体会热情地帮你把整场灾难搭建起来。


AI 极其擅长帮你过度设计

让 AI 解决某个问题,它通常都想帮上忙。

非常想帮忙。

帮忙得让人起疑。

你要一个小功能,突然之间你就有了:

  • 一个服务层
  • 仓储模式
  • 依赖注入
  • 校验抽象
  • 重试逻辑
  • 配置对象
  • 三个接口
  • 一个工厂

而且一切看起来都挺合理。

这就是问题所在。

糟糕的软件很少一开始就是那种一眼看上去很蠢的东西。

它始于许多单独看来都合理的决定。

AI 现在能比我们后悔的速度更快地做出那些合理的决定。


AI 越强,我越想要无聊的软件

我之前写过,我 2026 年的技术栈无聊得要命。

当时我是认真的。

现在我更认真了。

因为如果 AI 要写更多的实现,我希望周围的系统可预测到令人痛苦。

给我:

  • 无聊的数据库
  • 无聊的 API
  • 无聊的框架
  • 无聊的部署
  • 显而易见的架构
  • 另一个人不需要一张解释图表的图表就能看懂的代码

我不需要我的技术栈有趣。

我需要产品有趣。

这是有区别的。

而我觉得我们有点忘了这一点。


代码正在变得廉价

这可能是会惹恼一些人的部分。

我认为代码本身正在变得不那么有价值。

不是一文不值。

是价值降低了。

生产代码的能力正在以极快的速度商品化。

这并不意味着开发者正在变得一文不值。

它意味着开发中有价值的部分正在转移到别处。

转向:

  • 判断力
  • 架构
  • 调试
  • 产品思维
  • 品味
  • 知道该拒绝什么
  • 知道 AI 什么时候自信地错了
  • 知道什么时候正确的实现是不实现

我认为“品味”将成为最重要的工程技能之一。

而且它难得让人恼火地难以衡量。

当你和拥有它的人共事时,你就知道了。

他们会删东西。

他们会简化。

他们会问令人恼火的问题。

他们不知怎么地把你那聪明的 14 步方案变成五行无聊的代码。

这些人在一个 AI 密集的世界里会做得非常好。


我们不缺代码

这是我反复回到的一点。

我们从来没有真正缺过代码。

GitHub 并没有坐在那里想:

“求求了。来个人。我们迫切需要更多的 JavaScript。”

我们缺的是好的决策。

AI 给了我们更多的产出。

更多的实现。

更多的选项。

更多的原型。

更多的代码。

太棒了。

但更多并不自动等于更好。

有时候更多只是……

更多。

而如果开发者不变得更擅长筛选生成出来的东西,我们最终可能会用我们创造过的最强大的开发工具,生产出历史上最大的一堆平庸软件。

高效地。


我一直在用 AI

这不是一篇反 AI 的文章。

恰恰相反。

我用 AI 来编码、调试、研究、写作、探索想法,以及挑战我自己的解决方案。

我不想回到过去。

但我对“AI 写了整个功能”这件事的惊叹,已经不如从前了。

很酷。

但这是对的功能吗?

代码可维护吗?

你理解它生成了什么吗?

它是否增加了你并不需要的复杂度?

你自己会那样设计吗?

这些问题现在对我来说更重要。


也许这份工作从来就不是写代码

也许那只是最显眼的部分。

也许这份工作一直都是在不确定性下做决策。

理解系统。

做权衡。

找到能起作用的最简单方案。

偶尔还要告诉所有人:

不。我们绝对不需要为这个上 Kubernetes。

AI 能生成的软件,比我们任何人手工写出来的都要多。

那部分已经解决了。

现在真正有意思的问题是,我们是否真的更擅长判断哪些软件值得存在。

我不认为我们做到了。

说实话?

这可能是一个比 AI 取代程序员更大的问题。


你怎么看?

AI 是让开发者成为更好的工程师——还是只是让他们更快地产出他们本来就要构建的东西?