老项目上线新功能怎样避免接口兼容翻车
最近在一个 React 加 Node 的老后台加审批流碰到一个挺具体的问题:新字段上线后老版本移动端把订单状态读成空,客服以为审批单丢了。表面看像是单点失误,其实牵着流程、系统和现场沟通好几块。 我没有先急着下结论,而是把现场记录、系统状态和人的反馈放到一起看。先从 access log 按客户端版本分组,再把 API response 和前端缓存状态对齐,最后加了兼容字段、feature flag 和一组 contract test。这次复盘下来,最有用的是把接口契约变成能检查、能追溯的动作,只看新页面通过测试不够,老客户端、导出脚本和第三方 webhook 都要一起扫。 给同行的建议是:发版前列一张接口消费者清单,能灰度就灰度,不能灰度也要保留一段双写双读。这类事不一定天天发生,但一旦发生,损失往往都在交接和记录不清。你们做老系统改造时,会把兼容期留多久比较合适?