
过去几十年里,
软件工程最大的挑战之一是:
开发速度不够快。
于是:
我们发明了:
• 框架 • 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 会写太多代码。
未来软件工程最大的挑战,
可能不再是:
如何提高生产力。
而是:
如何防止生产力失控。
因为:
真正决定一个系统寿命的,
从来不是:
它能长得多快。
而是:
夜雨聆风