向后兼容的谎言:版本号救不了你的接口
Posted by quentin 在 Wednesday, 29 April 2026每个设计接口的人都对自己说过同样的话——"加个字段就行了,老的调用方不受影响。"
三个月后,你发现老调用方也在读新字段,但逻辑完全不是你预期的。半年后,当初保证"兼容"的那个人转岗了。一年后,没人动得了任何一个字段,接口文档变成了考古现场——一半字段没人用,另一半的含义靠口头传承。你在注释里看到 `// 这个字段别删,XX团队在用`,去找XX团队,他们说早就不用了,但不敢确认,要再查查。
这不是向后兼容,这是技术债在穿正装。
兼容性承诺是一种债务
接口设计里最危险的一句话不是"我们重构吧",而是"我们保证向后兼容"。前者好歹意味着你在正视问题,后者意味着你在透支未来。
向后兼容不是免费的。每多兼容一个旧版本,你就多了一条隐形的约束链。这条链不会出现在代码评审里,不会出现在架构文档里,但会在每一次你需要修改字段含义、调整返回结构的时候跳出来,像一个极其礼貌的绑匪——"您不能动这个,还有调用方在用。"