Bug修复指南
Bug修复指南
记录一下第一次正式修复bug干的蠢事。
定位
首先,要习惯需要debug的模块是你所不熟悉的。个人能力最重要的一点就是解决问题的能力。
其次,我觉得这次比较缺失的环节就是通过堆栈分析,leader直接告诉我成因了。通读一遍之后问题其实就基本知道原因。但他不告诉我,这个代码有1w行,我去找的话多半好几天。。。
其实还是按照堆栈一步步看哪里除了问题,然后一路回溯过去吧。
环境
我觉得这次做的最垃圾的就是没有搭建一个对照环境。一个bug环境,一个修复完成的环境。两边都应该跑一次测试,形成对照。造成的结果就是测试写的有问题而不自知。
修复
我更多的觉得应该遵守两个原则:
奥卡姆剃刀
最少的性能衰减,更多考虑在代码中使用转移所有权的操作。当然也要思考到生命周期
测试
一个稳定高可用的代码是什么样子的?这是我写测试的时候一直在想的问题。
我的答案就是不要相信使用者,确保做到足够的defence。仔细的审视每一个分支,有可能完全不被执行到而不自知
同时这样的理念更应该体现在测试里。但是这样以来工作量就会成倍的提升。如何去做一个折衷也是我今后需要一直思考的
思考
bug可以是一个bug,也可以代表更多。bug之后的思考我觉得也很有意义
是什么原因
怎么解决的
增加的代码造成的性能瓶颈在哪里,是否有更棒的解决方案
这一类问题应该如何避免,或者是否有更好的设计去杜绝这一类问题,让他根本不会成为一个可能造成bug的原因。
This post is licensed under CC BY 4.0 by the author.