Bug?!

作为程序员,遇到Bug是很稀松平常的:)

Bug千奇百怪,分很多种,有平台相关的、有第三方工具相关的、有其它人开发的相关模块,当然也有自己的:)

在遇到Bug时,不同的人解决办法也是千差万别的。有的人马上感觉很紧张,特别是在接收别人的代码进行维护时,出现了莫名其妙的错误,马上头大。当面临着时间压力时,更加慌不择路。经过几天的调查,例会上,也无法说明Bug的原因,此时人的心态就会发生变化。有的会说:“这不是我做的”,直接甩锅。好一点的会说:“我再调查几天,但是何时解决,我心里没有底”。有的也会说:“我觉得这个问题,我估计解决不了,能不能请老马看看”,请求外援。

我觉得,遇到Bug时,千万不能心慌,要有自信。如果你没有自信和淡定的心态,小Bug也会被无限放大了。那我就说说遇到Bug时,该怎样办?

首先,心里要有充分的准备,那就是99%的Bug都是自己的,不要乱怀疑。特别是刚刚从事软件开发的人,更要有这样的心里。为什么?因为有这样的心态有两个好处,一个就是聚集你的注意力,分析你的代码;其次,会锻炼你的心态,让你的内心能够平静下来。你想想,反正这个Bug应该是我的,问题出在我这里,应该由我自己来解决。如果你能够这样想,离解决Bug的距离就更进一步了。

其次,遇到好几天都不能解决的Bug时,需要放下手头工作,尽快静一静。你可以离开座位,出去呼吸下新鲜空气,或者和其它同时讨论下。通过松弛下紧张的神经,可能你会有些脑洞打开的感觉。最不好的是,苦闷地做在位子上苦思冥想,你又不愿意跟其它人交流;你只能在例会上不断跟其它人被动解释,却解释不出原因,你的心情又一次受到打击;打击后,会更加影响你的解决Bug的效率。所以,我们不能被Bug牵着鼻子走。有些Bug在你看来比较小的,或者比较丢人的问题,但是要敢于放下自己的自强心里,平静地、谦和地和别人交流,你会收到不一样的解决办法的。

最后,如果处在只能自己维护这个模块,没有其他人能够帮助到你时,该怎样办?其实这样的情况,我是经常遇到。我觉得此时的解决Bug的方法很重要。对于比较成熟的软件,出现一些非常偶然的Bug是时有发生的。此时,我们不能东怀疑、西怀疑,一定要聚焦到Bug发生的现象,要尽量复现Bug。可是有时客户的环境与实验室的环境是不一样的,例如:客户的设备规模、网络环境、操作方法等,在实验室都无法测试出来的。对于这样的Bug,首先要尽量模拟客户的环境测试、增加日志的打印,实在不行就需要到客户现场测试,前提是客户允许你测试;也有可能无法复现,此时我们需要和客户充分沟通,仔细查看日志,不能放过任何细节。同时仔细阅读代码,看看Bug大概出现的地方是否存在漏洞。

还有很多Bug是历史问题造成的,例如代码的维护性差,导致后人修改会容易出现问题。此时,在代码新功能开发阶段结束或者代码开发中,尽量进行重构,具体重构的方法,请参考我之前的几篇博文。当代码经过你重构后,你对待Bug的感觉就完全不一样了,你会感觉游刃有余。

总之,解决Bug的功力最能体现一个软件工程师的能力、素养。我们应该不断锤炼这种能力和素养,将书本中学到的东西不断应用到实践中,处处留心,不断雕琢自己的代码,相信你在不久的将来会在任何Bug面前都会充满自信。

猜你喜欢

转载自blog.csdn.net/ptrunner/article/details/86689495
bug