技术债到底该不该还?我用 AI 审视了自己3年的工程决策
三年前我写了一段代码,注释里写着”TODO: 这里逻辑有点乱,等有时间再重构”。
这段代码至今还在线上跑着。
前几周,我把它拿给 AI 看,让它帮我分析这段代码的问题。AI 洋洋洒洒写了一堆改进建议,最后补了一句:
“这段逻辑的核心问题在于没有明确的职责边界。但如果它已经稳定运行了很长时间,改动的风险可能大于收益。”
这句话让我愣了一下。
技术债的标准叙事,以及它哪里说错了
关于技术债,我们程序员圈子里有一套非常成熟的标准叙事:
技术债是坏的。要及时偿还。否则会越积越多,最后变成无法维护的屎山。
这套叙事不能说错,但它忽略了一个关键问题:偿还技术债是有代价的。
你去重构一段”坏代码”,需要:
- 时间(少则数小时,多则数周)
- 测试覆盖(不然改了等于没改)
- 业务暂停窗口(重构期间新功能怎么办)
- 认知成本(你真的比3年前的你更理解这段逻辑吗)
更要命的是,你要重构的那段代码,可能早就和其他20个地方紧密耦合了。”理清思路”的时间,可能比”写正确代码”的时间长10倍。
我让 AI 帮我复盘了3年的工程决策
我做了一件有点奇怪的事:把我工作3年来印象深刻的几个工程决策,写成备忘录,让 AI 逐一分析。
不是让它给出”正确答案”,而是让它从不同角度质疑我的决策——包括当时做的”正确决策”。
案例一:那个从没重构的接口层
三年前,我接手了一个项目,接口层的代码一团糟——命名混乱、参数不统一、错误处理五花八门。
我当时的决策是:不重构,先摸清业务逻辑再说。
这个决策在当时看起来很稳妥。但 AI 帮我分析后指出:因为从没建立过统一的接口规范,后续加入的5名开发者学习的都是这套”混乱规范”,导致混乱被系统性地复制了。
成本不是一次性的,而是乘以了人头数。
这是我第一次意识到:有些技术债,不是放着不动就在原地等你的——它在悄悄繁殖。
案例二:那次看起来正确的重构
两年前,我主导了一次大规模重构,把一个有3000行的”神类”拆分成了15个小类,每个类职责清晰,依赖关系也很干净。
花了两个月,写了大量单元测试,算是教科书级别的重构。
AI 分析之后给了我一个泼冷水的结论:
“这次重构的技术质量很高。但从业务角度看,这个模块在重构后的18个月里只新增了一个功能。重构的收益未能被后续的功能迭代充分稀释,工程投入产出比存疑。”
换句话说:我重构了一个将要退休的模块。
这不是技术决策的失误,而是对业务走向判断的失误。
案例三:那个”好”的架构决定
最让我意外的是这个案例。
四年前(那时候我还在上一家公司),我做了一个被当时所有人称赞的架构决定:把一个单体应用拆成了微服务。
服务边界清晰,各个团队独立部署,看起来非常专业。
AI 的分析让我重新审视了这件事:
“微服务架构在团队规模达到一定程度后收益明显。但在拆分时,你们的团队只有8个人。此后团队扩展到了多大?”
我回想了一下:团队最多的时候16个人,后来缩减回了9个人。
AI 继续说:
“8人团队采用微服务,引入的分布式系统复杂度(服务发现、链路追踪、分布式事务)可能超过了它带来的团队协作收益。这个决策可能在当时就’架构超前’了。”
当年被当成成功案例拿出去分享的决策,放在AI的放大镜下看,结论完全不同。
技术债的本质是什么
做完这次复盘,我重新理解了技术债的本质。
技术债不是代码质量问题,而是时间维度的资源分配问题。
你借入技术债,本质上是在用”未来的维护成本”换”当下的交付速度”。这个交易本身没有对错,关键是:
- 你有没有意识到自己在借债? 很多技术债是无意识产生的,这才是危险的。
- 利率是多少? 有些技术债利率极低(用了几年都稳如老狗),有些利率极高(每次改动都要多花3倍时间)。
- 你的还款能力如何? 如果业务一直高速增长,你可能根本没有时间窗口来还债。
AI 改变了什么
在这次复盘里,AI 的价值不是给出”正确答案”——它没有。
它的价值在于:提供了一个不带情感的视角。
我自己回顾工程决策,会不自觉地为当时的选择辩护(”那时候条件有限”、”我已经尽力了”)。AI 不会这样——它只是照着逻辑走,哪里有问题就指出哪里。
当然,AI 也有它的局限:它看不到当时的业务压力、团队关系、老板的deadline,这些才是真正驱动工程决策的东西。
所以我的用法是:让AI做逻辑分析,我来做上下文补充。 两者结合,才能得出比较接近真相的复盘。
那个三年前的 TODO,我决定怎么办
回到开头那段代码。
最终我没有重构它。
原因很简单:它服务的那个功能,已经在路线图上计划下线了。三个月后,这段代码会随着整个模块一起被删除。
重构它,是在给一栋即将拆迁的房子重新装修。
技术债从来不是非黑即白的问题。真正的工程判断力,是在”该还”和”不该还”之间,找到那条合适的界线。
而 AI,至少让我开始认真去找这条线了。
你有没有哪个”技术债决策”回头看会后悔?欢迎在评论区聊聊。