找bug的境界,我以为会有三层,debug
初级,在出bug的第一反应是,这应该不是个人问题,带着焦躁的情绪去找,期待这个问题不出在现我写的程序而是别人的,耗费了一段时间后或者是没找到,发现问题真的是本身这,时间耗费了很多,效率很低。调试
中级,出现bug了,去收集错误信息,或者重现操做,来debug调试一步步断点定位,最终bug是可以找到,但遇到线上问题,信息不足的时候,效率一会儿就降下去了。日志
高级,bug出现,日志没有堆栈信息,特别是线上环境,没办法第一时间看到出错位置,此时去了解了bug业务信息,定位了大概位置,而后去研读源码,无需debug和重现,就能发现问题所在开发
咱们都是从初级成长过来的,大多数都停留在第二个阶段,如何提高本身的效率,让本身更多的时间去专一在研发上,我以为这个是每一个开发者都要提高的技能。首先,出现bug不要由于外在的压力而紧张和焦虑,戒急戒燥,保持专一和心里宁静是你能快速找到bug的大前提,我知道出现重大bug的时候,有时间的压力和上司的压力让你没法作到静心,但越是这个时候越须要去拚弃这些压力,让本身不收这些压力的干扰来深刻到bug自己。源码
第二点是不要去抗拒bug,软件工程出现bug很正常,谁都会写出有bug的程序,出现了不要抗拒他,思想上不认同会让你从找问题的时候就走歪,必定要正视和面对本身,对本身默念,这个bug必定是出如今我写的那个地方,而不是抱着这个bug必定不是我搞出来的心理来找效率
第三点是平时的刻意训练,在出现bug的时候,了解到bug出现的业务信息以后,不要去经过重现或者debug方式来找,而是先思考出现的方式是什么,会有那些条件下出现,产生结果又那些不一样,而后一步步缩小范围,带着本身的猜测的去查看源码,如果猜测不对,再回退或者经过debug去查看,想一想本身是那些地方没有想到再遇到会怎么去思考。软件
经过这种反复对本身找问题能力的训练,我相信经过两个项目左右的刻意联系找bug的效率会愈来愈快,前提是必定要要求本身去刻意训练,前期会比较耽误时间,随着时间推移,这个时间会愈来愈快,就相似你的一个脑回路,逼格瞬间提高,让身边的同事另眼相看的。bug