移动应用 · 综合
应用的版本与向后兼容
一句话: 用户会拿着旧版本用好几个月——服务端必须支持它们,也必须知道什么时候停止支持。
现实
即便开了自动更新,版本分布也会拖上几个月。任何对服务端接口的破坏性变更,都会在用户不明白为什么的情况下把真实用户打掉。
所以:扩展,不要修改。加字段,不要删;加路径,不要改已有路径的行为。
控制机制
接口版本。在每个请求里声明,这样你才知道是谁在跟你说话。
强制升级。一个拦住已不再支持版本的页面。成本很低,而且必须从第一天就在——它没法追加到一个旧版本里。
功能开关。按版本和用户比例远程开关功能。
什么时候停止支持
按数据决定,不按感觉:当某个版本占活跃使用不到百分之一,并且在应用内提前通知之后。把策略写下来,免得每次发布都重新讨论一遍。
深入一层
每次服务端发布,都对最近两个受支持版本跑一遍针对当前接口的集成测试。没有自动测试的向后兼容会静默地坏掉,而且只会在商店评价里才浮现出来。