版本控制和功能开关
date
Jun 5, 2023
slug
my-rework-version-control-feature-switch
status
Published
tags
Rework
summary
版本控制可以没有,功能开关必须加
type
Post
Created Time
Oct 28, 2023 01:45 PM
Updated Time
Oct 28, 2023 01:45 PM
AI summary
版本控制和功能开关是解决多版本用户同时在线问题的两种解决方案。版本控制可以强制用户升级到最新版本,但可能会引起用户不满;功能开关则可以根据监控和统计的数据,在某一节点筛选掉“不合适”的用户,但开发和协作成本会提高。无论做不做版本区分,一个功能必须匹配一个开关。
Status
绝大多数终端的 App 都会有不同的版本。版本更新,即能解决历史遗留问题,还能提供新功能,但总有一些用户,因为各种原因,比如,旧版本的 App 就能够满足现有所有需求,或者更习惯于使用当前版本的 App,以至于长期不更新 App,久而久之,就会存在多版本用户同时在线的情况。
多版本用户同时在线会有很多问题,如:
- 历史问题修复需要兼容历史版本用户的数据模型,还需要做新老版本切换时的数据处理和平滑过渡;
- 旧版本客户端的请求方式和新版本客户端不同时,需要在业务层做区分处理;
- 展示数据完全由后端接口进行控制时,需要做大量的版本区分;
总而言之,言而总之,这样一来,业务模型的数据处理就会变的复杂且臃肿,相应的,性能也会急剧降低。最好的解决方案是做版本控制——当新版本更新时,强制用户升级到最新版本,否则不提供服务。但这样处理同样会存在一些问题,比如,更新时会引起用户的不满,甚至会损失一部分粘度比较低的用户。
次优的解决方案就是做版本相关的功能开关了,相应的,还要辅于配套的监控和统计,根据监控和统计的数据,适时的,在某一个节点,通过配置,筛选掉一些“不合适”的用户,但可想而知,这样的开发成本和协作成本都会提高很多。
最后,总结一下,版本控制可以根据产品功能的不同,做出符合自身需求的选择。功能开关是必选项,无论做不做版本区分,一个功能必须匹配一个开关,有了功能开关的产品,就像是一个并联电路的房子,你可以随意控制屋内的任意一个电器的运行和关闭,没有功能开关的产品,就像是一个串联电路的房子,你在打开电视时,就会同时开启冰箱、洗衣机、微波炉、台灯和空调,这简直太恐怖了!