我们以为legacy code是陈年旧账,是某个2010年的Java项目,文档丢失、作者离职、没人敢动。但真相更扎心——你刚提交的PR,下一秒就是legacy。
技术圈有个心照不宣的幻觉:新代码=干净代码,legacy是别人的麻烦。这个叙事在十年前勉强成立,现在彻底崩了。框架半年一换,依赖周周更新,你上周写的组件,这周就被标记为「待重构」。
作者的原话很直接:「Legacy code starts at commit one.」不是比喻,是字面意思。Commit 0是空仓库,Commit 1开始,代码就开始老化——知识开始流失,上下文开始模糊,维护成本开始堆积。
现代软件的速度把这个过程压缩到荒诞。以前一个系统能稳五年,现在能稳五个月就算长寿。不是代码变烂了,是周围的世界转得太快。你今天选的库,明年可能停止维护;你设计的API,下个季度就不合规范。
最讽刺的是,我们花大量时间讨论「如何重构legacy code」,却很少承认一个事实:我们每天都在生产legacy code,只是换了个名字叫「技术债」。
有个细节很有意思。作者提到,真正危险的从来不是旧代码本身,而是「context的蒸发」——你知道为什么这样写,但你说不清,也写不进注释。三个月后,你自己看自己的代码,也和看陌生人写的没区别。
热门跟贴