一个功能页面有好几个tab
每一个tab的展示顺序及是否展示,由服务端接口下发,我们就叫他tab接口吧
/xxx/tab
response:
[{
“tabId” : “xxx”,
“tabName” : “tab1”,
// …
}]
tab相关的文案、颜色、背景图等及tab顺序都应该由接口下发控制,更灵活
此时产品提需求,其他tab正常,但我们要新接入一个运营tab,作为一些运营的定制化内容展示,并且要接入用户端AB实验
于是乎,我是这样写的代码,tab列表每个tab都依次过一个开关,在开关里做AB判断,为了不影响线上已有tab,这个开关的默认值是true。 但是创建开关的时候,一个开关默认值都是false,如果忘记修改为true,会导致一个问题,所有的tab不展示,即都被开关拦截了,页面就会展示一个黑屏,不要开这个小问题很简单,确实是一个线上发生的血的教训,幸亏提前灰度,发现问题并扼杀在摇篮里,不然得提桶走人了。。。
开关设计为默认true是一个很危险的事情,需要谨记,一个新功能或新页面的开关的默认值就应该为false,随着放量变为true。
然后tab接口下发的tab个数我们应该要打点监控,小于等于2时要报警,如果tab下发空时,要有兜底tab列表,除非你想让用户看到tab为空的页面。
除此之外,针对核心功能,如果tab接口下发为空,或者超时或异常,端上也应该做一个兜底保护,保证页面的展示
说点什么
您将是第一位评论人!