为何 UI 从不像 API 那样版本化?

Why Don't We Version UIs?

为何 UI 从不像 API 那样版本化?

我最近又被‘坏掉的新界面’搞得心烦意乱,突然想到:为什么不像 API 那样给 UI 做版本管理?API 和 App 都能长期保留多个版本,为什么 UI 不行?这或许能减少用户对无尽变更的挫败感,也能支持更长期的测试。大家觉得呢?

我们从 2015 年就开始给 UI 做版本控制了,主要是为了解决用户长期保持标签页打开导致的奇怪 Bug。虽然需要后端精心规划和兼容数据处理,但这完全是可解的技术问题。前端在 API 调用中带上当前版本号,后端据此处理数据转换,前端则忽略多余字段。这套机制不仅防住了不一致的 Bug,还支持 A/B 测试和详细监控。
我见过一些老软件或 SaaS 显示 UI 版本号,但允许用户切换版本通常没意义。因为界面更新往往伴随着前后端同步变更,厂商不愿提供切换功能,毕竟维护这种切换逻辑的复杂度太高了。
遇到重大更新时,很多网站甚至应用(比如 Reddit 和 Outlook)会允许用户选择试用新版本,或者如果新版本不好用,可以退回到旧版本。但这通常只是简单的‘旧/新’切换开关,用于应对大改动,而不是让用户能回溯到历史任意版本,那样维护起来简直是噩梦。
Reddit 的 old.reddit.com 就是一个反例,它保留了旧版界面供用户选择,与新版并存。
对我来说,避免升级 treadmill(升级 treadmill)是保持界面和工作流稳定的可靠方法。当然,这顿饭不是免费的,祝你好运。