一个祭天级的失误带来的思考 2022年10月12日 974 代码厨子 犯了一个程序员都会犯的错误,一次更新把业务主功能给掐断了,关键16个小时才发现。这是一次教训,也是一次检讨与反思。 ![](https://cdn.aqifun.com/ME/editor/code_20221012080401660817.jpg) 这是最近捣鼓的一个项目,初期只是为了自己方便,各种采集表单,整理数据方便。结果发出去后流量还很不错,连续几天上台阶,可就在这个关键时候,我犯了一个程序员都会犯的错误,把主业务迭代时候搞中断了,关键是中断了16个小时,当然包括一个夜里,事情的经过和处理是这样的: 在一次迭代中,开发时候我在调试时候,阻止了提交表单,以便我进行调试,在打包发布时候忘记没有去掉,于是提交审核了。 在这里,我犯了第一个错:中断主业务的调试,然后就这么打包了。 然后提交审核后我就发布了,这里又犯了第二个错,没有体验版测试情况下就发布了,然后就所有无法提交了。 早上发现后开始回退版本,这时候又犯了第三个错,回退错了版本,依然是一个bug版本,于是仅仅修复,紧急审核,大约20分钟后,恢复正常。 以上大概就是事情的经过,经过这个事情,总结如下几个经验: 1. 使用阻断业务来调试代码完成后,无论下面要写什么,要先解开,不能在主业务停顿上保留代码。 2. 版本发布前一定要测试测试测试,重要的事情说三遍,最起码最起码主业务与必须测试。 3. 得有一个报警机制,主业务中断必须第一时间能够发现,这个用什么方法我还在寻找。 4. 处理bug时候要稳准狠,特别第一个操作动作,要冷静和精确,已经产生了损失,补救时候还是要能让损失少一点是一点,这次回退版本错误既耽误了处理时间,又浪费了一个紧急审核,修补成本又增加了。 总结:这是一个祭天级的错误,可能以后随着年龄的增加会越来越多,只有通过完整的规范来避免,不能让一个星星之火而熄灭。