乐于分享
好东西不私藏

AI 最大的问题不是不会写代码,而是太会写代码

AI 最大的问题不是不会写代码,而是太会写代码

过去几十年里,

软件工程最大的挑战之一是:

开发速度不够快。

于是:

我们发明了:

  • • 框架
  • • IDE
  • • 自动化工具
  • • 云计算
  • • DevOps

目的只有一个:

让软件开发变得更快。

但 AI 出现之后,

情况开始发生变化。

因为第一次:

人类遇到了这样一种工具:

它可以无限接近“零成本生成代码”。

而这恰恰可能带来一个新的问题:

AI 最大的风险不是不会写代码。

而是:

太会写代码。


一、软件开发最大的成本,从来不是写代码

很多新人会以为:

软件工程最难的部分是:

把代码写出来

实际上:

大型系统里,

真正昂贵的是:

  • • 理解代码
  • • 维护代码
  • • 修改代码
  • • 验证代码
  • • 删除代码

而不是:

第一次把代码写出来。


一个经典现象

很多项目:

第一个版本可能:

2个月
1万行代码

就完成了。

但后面:

5年
50万行代码

都在维护。

这意味着:

软件的大部分生命周期成本都发生在“生成之后”。


二、AI 正在让代码生成成本趋近于零

过去:

如果想增加一个功能。

你需要:

  • • 分析需求
  • • 设计方案
  • • 编写代码
  • • 调试问题

整个过程:

需要时间。


现在

很多时候:

只需要一句话:

帮我增加一个订单导出功能

几分钟后:

可能:

  • • 页面有了
  • • API 有了
  • • SQL 有了
  • • 测试有了

于是:

写代码开始变成最便宜的事情。


三、当生成成本接近零,会发生什么

历史上:

任何东西一旦变便宜。

都会被过度生产。

例如:


工业时代

当塑料变便宜:

结果是:

塑料泛滥。


互联网时代

当内容发布变便宜:

结果是:

内容泛滥。


AI 时代

当代码生成变便宜:

结果很可能是:

代码泛滥。


四、未来最大的风险之一:代码膨胀

这是我认为未来几年一定会出现的问题。

因为 AI 天然喜欢:

  • • 多写一点
  • • 多封装一层
  • • 多抽象一层
  • • 多加一个模块

例如:

原本:

def get_user(id):
    return
 db.query(...)

已经足够。


AI 很可能生成:

UserRepository

UserService

UserManager

UserFacade

UserProvider

最后:

几十行逻辑。

变成:

几百行代码。


于是:

软件复杂度开始快速增长。


五、AI 特别容易制造“看起来正确”的复杂度

这是最危险的一种复杂度。

因为:

它不像 bug 那样明显。


AI 生成的代码通常:

  • • 命名规范
  • • 注释完整
  • • 格式漂亮
  • • 架构优雅

看起来:

非常专业。


但问题是:

优雅不等于必要。

例如:

一个小团队项目。

AI 可能:

  • • DDD
  • • CQRS
  • • Event Bus
  • • 微服务

全部安排上。

结果:

业务没复杂多少。

系统复杂度翻了十倍。


六、未来最危险的技术债:AI 技术债

过去的技术债:

通常来自:

写得太快。

例如:

  • • 临时 patch
  • • copy paste
  • • 魔法代码

未来可能相反。

很多技术债会来自:

写得太多。

因为:

AI 会持续产生:

  • • 抽象层
  • • Wrapper
  • • Helper
  • • Utility
  • • Middleware

于是:

系统越来越厚。


最终出现的问题

新成员加入项目时:

发现:

功能很简单
代码很复杂

这会成为未来典型现象。


七、为什么 AI 天然偏向复杂化

因为 AI 的训练目标不是:

最简单方案。

而是:

最像训练数据里的方案。

而互联网代码:

很多来自:

  • • 大厂
  • • 开源框架
  • • 企业系统

这些项目:

本来就很复杂。

于是:

AI 容易学到:

“复杂是正常的”。


但现实里

很多业务:

其实只需要:

简单方案

就够了。

因此:

AI 的最优解,

不一定是业务的最优解。


八、未来的软件工程核心会发生变化

过去:

软件工程关注:

如何提高开发效率。

未来:

越来越关注:

如何控制复杂度增长。

因为:

生成已经不贵了。


真正昂贵的是

  • • 维护
  • • 理解
  • • 调试
  • • 验证
  • • 演化

这些成本:

不会因为 AI 消失。

反而可能上升。


九、未来最重要的能力:复杂度治理

我认为:

未来十年最重要的软件工程能力之一就是:

Complexity Governance(复杂度治理)

核心问题变成:

哪些代码不该生成?

而不是:

如何生成更多代码?


未来优秀团队会关注

边界

例如:

  • • 模块边界
  • • 服务边界
  • • 数据边界

约束

例如:

禁止循环依赖
禁止跨层访问
禁止重复实现

删除

未来一个重要能力:

可能变成:

删除 AI 生成的代码。

而不是:

编写更多代码。


十、为什么验证会比生成更重要

未来:

AI 写代码越来越容易。

但:

验证代码是否正确

依然困难。

因此:

软件工程会从:

Generation First

逐渐变成:

Verification First


未来流程可能变成:

AI 生成

自动测试

静态分析

安全检查

运行验证

上线

甚至:

多个 AI 专门负责:

审查其他 AI。


十一、未来的软件开发,会越来越像城市规划

这是一个我很喜欢的比喻。

过去:

开发更像:

盖房子。


未来:

开发更像:

管理一座不断扩张的城市。

因为:

AI 会不停建设。

问题变成:

  • • 路怎么修
  • • 区域怎么划
  • • 交通怎么组织
  • • 哪些建筑该拆

本质上:

是控制系统演化。


十二、最后

很多人担心:

AI 会不会写代码。

我反而觉得:

这已经不是核心问题。

真正的问题是:

AI 会写太多代码。

未来软件工程最大的挑战,

可能不再是:

如何提高生产力。

而是:

如何防止生产力失控。

因为:

真正决定一个系统寿命的,

从来不是:

它能长得多快。

而是:

它能否长期保持简单、清晰、可维护。