2020 年 3 月 25 日,一个索然无味的的星期三,阿粉日常打开手机淘宝,看看有什么需要买的。然后阿粉就看到了下面的提示:
刚看到这个阿粉本来还觉得很奇怪,自己什么时候参加淘宝 TestFlight 内测计划?
打开 TestFlight 并没有发现参与记录,招呼几个身边的小伙伴打开淘宝,所有使用 ios 的小伙伴都复现这个问题,而使用安卓的小伙伴却没有这个问题。
针对这个问题,淘宝官方微博 09:11 分发布回应:
当大家都以为这只是一个小问题的时候,网友测试反馈,只要将手机时间调整到提示的 2020-03-28 日,手机淘宝就会无法使用。再次打开时,淘宝 App 将会显示异常退出页面,甚至账号无法登录。
中午的时候,阿粉再打开手机淘宝,查看一下这个问题是否被修复。可惜并没有,弹窗还是会出现,只不过很快就会被自动关掉。
下午一两点的时候,阿粉再打开发现已经没有这个弹窗,不过这个问题还是没有被修复。淘宝通过技术手段,在打开手机淘宝时,快速自动关闭弹窗,让我们感知不到这个弹窗。网友通过录屏软件,还是能复现这个弹窗。
由于这个问题影响面太大,再加上今天这个特殊的日期 3.25,网上流传一张图片,传言之前被打 3.25 ios 开发故意报复性留下隐藏 BUG。
可能有些小伙伴不知道 3.25 是什么东西。简单来说这是阿里一种考核方式,员工如果连续两次拿 3.25 就将会被劝退。
不过很快淘宝官方发布回应辟谣,并且紧急在 AppStore 更新最新版本的应用,只要版本更新到 9.5.15,问题最终被解决。
还没更新的小伙伴,赶紧更新了,不然等到 28 那天,还真不能用了。
虽然问题解决了,但是这次问题影响面这么广,想必内部问题定级肯定会高,可能是 P0 级。心疼手淘 ios 开发跟测试,很多人会背上 3.25。
不得不说,我们今天又一次见证了历史!
对于今天的问题,作为后端开发,阿粉可能并没有什么发言权。
不过生产问题日常开发中我们也会经常遇到,阿粉仔细想了一下,也许我们可以从三方面出发,减少生产问题。
事前
对于生产发布的需求,一定要制定规范的流程,包括需求评审,设计评审,测试用例评审,代码交叉 Review 等。
千万不要觉得以上流程繁琐,一旦设计在源头就是错误的,下面工作就是白费功夫。另外代码交叉 Review 非常重要,开发一般都会对自己的代码过分自信,往往觉得不就改了几行么,肯定没问题的。殊不知,不自觉就写了 Bug。
所谓当局者迷旁观者清,通过旁人代码 Review,就可以发现这类问题。
另外还需要建立一套完整的自动化测试流程,方便测试新功能,快速回归老功能。防止改动一个新功能点,从而引起新的 Bug。
事中
即使事前做的再完美,意外也总会发生。当问题发生时,不要慌张,根据应用日志,系统监控一点点排查问题。记住千万不要想着先甩锅!
另外建立一套自动发布系统也非常重要,关键时刻,快速回滚回应用的上一个版本记录。
事后
最后解决完问题,不要想着就结束了,我们还需要复盘问题。复盘的目的不是为了分锅,而是为了充分吸取这次的经验教训,排查整个发布过程中一些漏洞,并且提出相应改进措施,持续追踪,不断改进,也是为了避免后续小伙伴们再踩坑。
最后
愿以后不会有 3.25!!!