前几天看 Hacker News 上关于 AI 辅助软件工程的讨论,我有一种很直接的感受:很多人表面上在讨论“AI 会不会写代码”,真正焦虑的却是另一件事。
如果代码的实现越来越廉价,软件工程师还凭什么建立自己的价值?
这个问题不能靠情绪回答,也不能靠一句“AI 只是工具”轻轻带过。现实是,工具能力已经变了,工作重心也在变。过去很多工程师靠实现速度、语法熟练度和局部技巧建立优势;今天这些能力依然有用,但它们已经不再足够支撑长期竞争力。
“代码猴子”这个词听起来刻薄,却准确地指向了一种旧角色:拿到需求,拆成任务,快速实现,修修补补,把系统继续往前推。这个角色不会立刻消失,但会越来越边缘。因为 AI 最先吞掉的,恰恰就是这类高重复、高模式化、可局部展开的执行劳动。
问题在于,软件系统并不会因为 AI 会写代码,就自动变得更可靠、更优雅、更可持续。代码生成越容易,系统越容易在短时间里膨胀出更多隐性复杂度。于是工程师真正需要补上的,已经转向“如何定义、约束、审计和收束”。
这也是我越来越相信的一件事:
未来的软件工程师,必须主动从代码执行者转向系统建筑师。
一、代码越来越便宜,判断越来越昂贵
AI 最直接的影响,是把很多原本昂贵的实现劳动迅速压低成本。搭框架、补样板、生成 CRUD、拼接接口、写测试骨架、做第一次重构,这些事情都比过去快了很多。
这会让很多人误以为,既然 AI 已经能写代码,那么人的价值大概只剩下“看一眼”或者“点个确认”。这个理解太浅了。
代码成本下降,真正上升的是另一种成本:判断成本。
系统该解决什么问题,哪些边界不能碰,哪些异常必须兜底,哪些性能风险可以接受,哪些设计在半年后会拖垮团队,这些问题都不会因为模型更强就自动消失。它们依旧存在,而且因为生成速度更快,判断失误的代价还会被同步放大。
从这个意义上讲,AI 并没有减少软件工程的复杂性,它只是把复杂性从编码层推向了架构层、验证层和责任层。
二、真正稀缺的能力,是定义“什么算对”
过去很多工程师的默认工作方式是:需求来了,先开始做,边做边修。
这种方式在人肉编码时代还能勉强成立,因为实现速度有限,错误扩散速度也有限。到了 AI 时代,这套习惯会变得很危险。因为系统可以在很短时间里生成大量“看起来像那么回事”的东西,而这些东西一旦缺少清晰约束,就会迅速积累成真正的结构负担。
所以,建筑师视角下的第一项能力,首先是定义。
你要定义的包括:
- 问题边界:这次任务究竟解决什么,不解决什么。
- 业务契约:输入输出、前置条件、失败路径、异常处理、权限约束。
- 验收标准:什么叫完成,什么叫合格,什么叫绝对不能上线。
- 演化方向:这个实现是临时补丁,还是未来要长期承载业务的骨架。
如果这些东西是模糊的,AI 就会用它最擅长的方式补齐空白:高效率地猜。
问题在于,软件系统最怕的是在约束不清的情况下被高速猜测和填充。
三、契约与审计,会取代一部分“手写代码”的中心地位
现在很多团队还把文档、测试、架构约束当成辅助材料,真正的重心仍然放在实现代码本身。这种分工正在过时。
在 AI 辅助开发里,真正长期值钱的部分越来越像两种东西:契约和审计。
所谓契约,核心是把系统的硬边界写清楚。
你不能只告诉 AI “帮我做个登录功能”,而要告诉它:
- 输入必须满足什么结构。
- 哪些状态转换是合法的。
- 哪些副作用必须延后。
- 鉴权失败时如何返回。
- 哪些日志必须记,哪些敏感数据绝不能落盘。
契约写得越清楚,AI 的自由度越健康;契约写得越含糊,系统越容易生成出漂亮但危险的实现。
而审计的作用,是持续假设“它会犯错”。
成熟团队不会把 AI 当成永远正确的高级工程师,更接近把它当成一个高产、聪明、但没有责任感的执行器。你必须带着怀疑去检查它:
- 有没有把 happy path 做得很漂亮,却把异常路径留空。
- 有没有引入不必要的依赖。
- 有没有把局部优化换成全局复杂度。
- 有没有在并发、幂等、权限、安全这些地方留下暗雷。
这类审计能力,关注点早已超过“找语法错”,它是在看系统有没有长期生命力。
四、AI 做得越多,人越要补上四种高层能力
如果把工程师未来的竞争力压缩成几个关键词,我会选下面四个。
1. 问题定义
AI 可以在一个给定的问题空间里高速展开,但它不会天然知道什么问题值得解决。
很多项目最后失败,往往是因为一开始就定义错了目标。你解决了一个伪问题,系统做得越快,资源浪费得越彻底。
2. 风险感觉
系统设计里有很多东西无法只靠表面逻辑判断。
一个重试机制看上去合理,可能会在流量高峰时击穿下游;一个缓存策略看上去优雅,可能会引入极难追踪的一致性问题。真正有经验的人,看到设计的瞬间就会闻到一点不对劲。这个“闻到”的能力,很难被简单外包。
3. 结构压缩
AI 的天然倾向是加法。它会补函数、补层次、补工具、补抽象,只要能把眼前问题解掉。
但优秀架构师必须持续做减法:合并重复逻辑,砍掉多余依赖,收紧接口,压缩概念数量,让系统保持在一个可理解、可维护、可演化的状态里。
未来很重要的竞争力,落在谁能在高速生成之后依然维持低熵结构。
4. 责任承担
这是最现实的一层。
系统出故障,AI 不会站出来解释;合规出问题,AI 不会承担法律后果;线上事故发生后,签字的人、拍板的人、上线的人,仍然是人。
所以人的价值并没有因为 AI 变强而消失,反而更集中地落在“我是否理解这个系统,并愿意为它负责”上。
五、从今天开始,工程师该怎么转型
如果已经接受了这个方向,接下来真正有价值的问题就是:应该练什么。
我倾向于把转型路径概括成下面几件事。
第一,少把时间花在追逐表层语法,多花在理解系统底层约束。
操作系统、网络、数据库、一致性、故障传播、权限模型、性能瓶颈,这些东西不会因为 AI 出现就失效。相反,它们会变得更重要,因为你越来越需要判断 AI 给出的实现是否真的站得住。
第二,练习写规格,同时提升约束表达能力。
OpenAPI、JSON Schema、接口约束、状态机、错误码约定、回滚策略,这些东西过去经常被当作配套文档,未来会越来越接近核心资产。
第三,刻意训练审稿能力。
以后很多时候你面对的会是一份已经生成好的初稿。你的任务也会变成快速看出它哪里偷懒、哪里脆弱、哪里会在未来变成债务。
第四,培养对真实业务的理解力。
AI 能学会框架,却很难真正理解一个行业为什么这样运转。医疗、金融、制造、教育、供应链,每个领域都有大量不写在教程里的摩擦力。谁更理解这些现实约束,谁就更有资格定义契约。
六、告别“代码猴子”,也是重估过去
我并不觉得“代码猴子”这个词只是在嘲讽低级劳动。它更像一种提醒:如果一个人长期把自己的价值建立在“执行别人已经定义好的事情”,那他迟早会被更便宜、更快的执行器挤压。
但这并不意味着过去的编码训练没有意义。恰恰相反,正因为你真正写过系统、踩过坑、处理过事故、理解过复杂性,所以你才有可能在 AI 时代升级成更高层的角色。没有手感的人,很难成为建筑师;只是如果今天还停留在手感本身,那就不够了。
我更愿意把这场变化理解成一次职业重心的上移。
过去你证明自己,靠的是把东西做出来;未来你证明自己,更多靠的是你能否定义值得做的东西,能否判断它做得对不对,能否在高速度、高噪声和高复杂度里守住系统的方向感。
这才是我理解的“清醒的软件建筑师”。
代码仍然重要。
只是接下来,真正拉开人与人差距的,不会只是代码。