Cover image for A CEO Said AI Replaced Developers. Then an Entire Engineering Community Opened DevTools.

Kent Phung

一位 CEO 称 AI 已取代开发者,随后整个工程师社区打开了 DevTools

一个关于 AI、软件工程,以及「交付代码」与「交付生产级系统」之间差异的故事。

几天前,一位越南 CEO 的一篇帖子在当地科技圈引发轩然大波。

他的说法相当大胆。

「我每月只需支付约 20 美元的 Claude 费用,它就取代了我们内部软件的开发者。」

他认为,中小企业不再需要软件开发者、昂贵的 SaaS 订阅或数月的开发周期。

相反,他们只需用自然语言描述需求,AI 就能构建出应用。

这篇帖子迅速在社交媒体上传播。

成千上万人表示认同。

有人将其视为软件开发的未来。

也有人认为这是软件工程师终结的开端。

每个人似乎都有自己的看法。

几天后,发生了有趣的事情。

几位工程师设法找到了这篇病毒帖背后的应用。

出于好奇,他们做了工程师自然会做的事。

他们打开了网站。

他们按下 F12。

他们打开了 DevTools。

起初,没有人试图证明谁对谁错。他们只是想了解它是如何构建的。

然后第一张截图出现了。

「等等……为什么这个暴露在前端?」

几分钟后,又出现了一张。

「这个凭证不应该在这里。」

接着又一张。

「管理页面真的受保护吗?」

更多工程师加入进来。

有人检查 JavaScript 打包文件。

有人监控网络请求。

有人追踪 API 调用。

几小时内,截图、代码片段和技术分析开始在越南的工程师群组中传播。

一个发现变成了五个。

五个变成了二十个。

讨论不再围绕 AI 是否能生成代码。

它演变成了一个更有趣的问题。

能运行的软件与可投入生产环境的软件之间,究竟有什么区别?


第一印象

公平地说,这个应用看起来出奇不错。

UI 很干净。

存在身份验证。

用户可以登录。

数据可以创建和更新。

如果有人只给我看演示视频,我可能会说:

「哇。AI 变得非常厉害了。」

老实说,我至今仍然这么认为。

因为接下来发生的事,并不是 AI 不好的证据。

它证明了软件工程远不止编写代码。


最初五分钟

经验丰富的工程师通常首先检查的不是 UI。

而是浏览器已经知道的内容。

几分钟内,几个问题变得显而易见。

敏感配置值直接暴露在前端。

本不该存在于客户端代码中的凭证可以被访问。

管理功能实际上并未通过授权机制保护。

在一种情况下,它只是通过 CSS 对用户隐藏。

浏览器本不应显示它。

但没有任何东西阻止有人直接访问。

某些 API 端点对前端的信任远超应有程度。

一些通常应在服务器端执行的安全检查似乎缺失了。

在多处,应用假设用户会诚实行事。

软件很少被诚实用户攻击。

最有趣的是?

这些发现并不需要复杂的黑客技术。

只需一个浏览器。

几分钟。

加上 DevTools。


这些都不是 AI 的 Bug

这就是我认为许多讨论出错的地方。

人们立刻说:

「看吧?AI 写的代码很糟糕。」

我不认为这是真的。

Claude 并没有随机决定暴露密钥。

它并没有故意用 CSS 取代授权。

它也没有某天早上醒来想:

「今天我要忽略安全最佳实践。」

它只是针对收到的任务进行了优化。

如果提示是:

「给我构建一个管理仪表板。」

那么它就构建了一个管理仪表板。

而不是一个安全的生产系统。

这是两个截然不同的请求。

AI 完全按要求执行了任务。

真正的问题不在于 AI。

真正的问题在于将「生成代码」等同于「工程化软件」。

事实并非如此。


演示成功了。工程尚未完成。

这是我们行业多年来一直难以解释的事。

许多人认为软件工程就是编写代码。

事实并非如此。

编写代码只是工作的一小部分。

真正的工程发生在不可见的层级。

那些用户永远注意不到的事情。

比如:

  • 身份验证
  • 授权
  • 密钥管理
  • 速率限制
  • 审计日志
  • 监控
  • 备份策略
  • 灾难恢复
  • 数据库迁移
  • 基础设施
  • 威胁建模
  • 负载下的性能
  • 合规性
  • 安全审查

这些都不会出现在产品演示中。

这些也不会让初创公司发布视频看起来更酷。

但正是这些决定了软件能否在生产环境中存活。


AI 改变了成本曲线

这其实是令人兴奋的部分。

五年前,构建 MVP 需要一个团队。

今天呢?

一位创始人借助 AI 可以在一个周末构建出令人印象深刻的东西。

这太不可思议了。

老实说,我很喜欢这样。

更多人可以验证想法。

更多初创公司可以尝试实验。

更多企业可以自动化重复性工作。

AI 大幅降低了创建软件的成本。

这毫无疑问是件好事。

但降低创建软件的成本,并不消除对工程的需求。

它只是改变了工程创造价值的位置。


工作从来不只是编写代码

这可能是我在网上看到的最大误解。

人们认为开发者是靠打字拿薪水的。

他们不是。

我们拿薪水是为了降低不确定性。

我们拿薪水是为了降低风险。

任何人都可以生成代码。

经验帮助回答以下问题:

  • 如果有人绕过前端会发生什么?
  • 用户能否访问其他客户的数据?
  • 如果这项服务离线会怎样?
  • 我们如何在不中断服务的情况下轮换密钥?
  • 这个架构在百万用户规模下是否仍能正常工作?
  • 部署失败后我们如何恢复?
  • 当生产环境在凌晨 2 点崩溃时,我们需要哪些遥测数据?

这些问题很少出现在提示中。

但它们每天都在生产环境中出现。


「氛围编程」不是敌人

事实上,我每天都在使用 AI。

  • Claude
  • GPT
  • Gemini
  • Cursor
  • GitHub Copilot

它们让我效率大幅提升。

AI 编写样板代码。

AI 解释不熟悉的代码。

AI 生成测试。

AI 审查 pull request。

AI 帮助我在几小时内而不是几天内完成想法原型。

它是我用过的最好的生产力工具之一。

但我不会把加速与专业能力混淆。

把一辆 F1 赛车交给刚拿到驾照的人,并不会造就 F1 车手。

它只会造就一个更快的初学者。

AI 的作用也是如此。


这里到底发生了什么?

讽刺的是,这个故事与 CEO 无关。

与 Claude 无关。

甚至与安全漏洞无关。

它揭示了更深层的东西。

多年来,包括我们自己行业在内的许多人,错误地将软件工程等同于编写代码。

AI 打破了这一幻象。

编写代码的成本每个月都在降低。

工程判断力却没有。

如果说有什么不同,那就是 AI 让它变得更有价值。

因为现在任何人都能生成成千上万行代码。

困难的部分在于判断这些代码是否应该进入生产环境。


我的看法

我不认为 AI 在取代软件工程师。

我认为 AI 正在取代我们曾经误以为是软件工程的那部分工作。

即敲代码。

真正的工作一直是:

  • 理解系统。
  • 管理复杂性。
  • 为失败而设计。
  • 保护用户。
  • 做出正确的工程决策。

讽刺的是,AI 让这些技能比以往任何时候都更有价值。

因为当任何人都能生成代码时……

最难的部分不再是编写软件。

而是判断那个软件是否值得部署。


最后的想法

那篇病毒帖有一点没错。

AI 从根本上改变了软件开发。

它降低了门槛。

它赋能了创始人。

它让个体开发者效率大幅提升。

这值得庆祝。

但工程师社区的回应提醒我们同样重要的一点。

在演示中令人印象深刻的软件,与能在生产环境中存活的软件之间,存在巨大差异。

一个证明了想法。

另一个赢得了信任。

而信任一直是最难工程化的东西。

或许这个故事最大的教训不是 AI 会或不会取代开发者。

而是 AI 终于迫使我们回答了行业多年来一直在回避的问题:

软件工程师到底在做什么?

而现在,或许我们第一次有了比简单回答更好的答案:

「我们编写代码。」


你怎么看?

AI 是否改变了成为软件工程师的意义?

还是它只是揭示了软件工程一直以来的本质?