尝试以下几招从此不做“bug大王”

时间:2021-10-05 06:31:44
程序员写程序出现bug再所难免,但是常常制造低级错误,影响深远的bug就不对了。工作中有这样的现象,部分程序员比其它人更容易制造bug,而且具有bug低级反复,频率高,bug似是而非,是名副其实的“bug大王”,这对团队来说是个大麻烦。所以,程序员都应该避免成为这样的麻烦,那么应该怎么样才能避免成为“bug大王”呢?
尝试以下几招从此不做“bug大王”
笔者根据平时工作的一些观察、经历和感悟,认为应注意以下几点:

一、思考切勿片面

思考要全面,不要把这头按下去了,那头又冒出来。比如增加一个特性,就要考虑这个特性影响的 功能及模块;修改一段代码,要考虑是不是会影响其它代码。
二、心态要保持平和
不要把生活中的情绪带到工作上。写程序如果不平心静气很容易犯错误,比如有人会因为买房子把程序写得一塌糊。当然有一个和睦的家庭关系、人际关系有助于有调整出平和的心态。一位*的朋友曾经说过,他们认为夫妻对于雇主来说是一个整体,他们很难想象一个天天吵架的人能够好好工作。
三、避免不必要的争论
程序员与项目经理、测试员、架构设计者在工作上会有很多机会需要沟通。但是如果不先思考清楚就发起争论,这对于沟通和情绪都不会帮助。争论会让你对实现功能没有兴趣,在写程序时就容易不专心。所以尽量在仔尽可能理解对方的要求后再对不理解的部分提出讨论,不要急于争论。
四、不要上QQ
写程序时不要上QQ。QQ对于很多程序员来说,真的效率杀手、Bug催化剂。QQ上一会儿这个发个信息,一会那个传个东西,都将让你的思维碎片化,会导致思考表面化,进而犯下一些低级错误。当然不只是上QQ,包括其它相关的容易分心的IM软件。如果实在要上,可以把一天的时间分成2:6:2,其中60%的时间要关掉QQ。
五、一定要做基本确认
基本确认包括语法正确性确认、编译正确性确认和功能正确性确认。
语法是最基本的,但是很多人为了快或者太过于自信,将一些语法都通不过的东西就直接签入,这是非常不好的。
编译正确性,对于Web开发来说,部分程序员经常会忘记完整编译再签入,也横容易导致问题。
功能正确性确认,这里说的确认还不能算是测试,就是简单的查看。工作中确实有很多Bug是因为连最基本的确认都没有做而导致的。比如调整分页错误,程序改了后,看都不看就认为修改好了,这肯定容易出错。
六、写程序要符合常理
经常有很多违背常识的、“愚蠢”的Bug让测试人员哭笑不得。比如原本录入大量文本信息的多行文本框却只有一个马赛克那么大;在进行超过限制字数的检查并提示后将整个文本框直接清除(这种错误会找骂的)了。当然,这可能涉及软件开发管理的问题。如果需求定义非常完美,那么这些提示将会写好,程序员照做就行了。但是那种把伪代码写好,变量名称都命好的任务包目前还很少有组织能做到,及时能做到,程序员也不能忘记对常识问题的把握。程序员在程序中涉及到的常理问题上要有自己的思考和判断,如果拿不准的应该主动找设计人员进行沟通确认。
七、从不做“Bug大王”到有效避免Bug
首先是要不厌其烦的做好单元测试[1]。就Web开发来说,同一模块的数据库对象、DAL、BLL到Web可以构成一个单元。这些单元可以编写专门的单元测试代码用Nunit来进行测试。Nunit测试DLL库项目还比较方便,但是测试Web就不那么方便了,简便的方法写一些测试的页来进行单元测试;
然后是注意利用集成开发环境提供各种功能和信息,比如警告等[2]。
接下来是代码审查,如果有条件,重要的代码最好由同事间互相审查一下。
最后是尽量使用系统中既有的解决方案解决问题,包括已经建立好的公共库,类似的UI模型等等。尽量不要使用不熟悉的外部库来实现一些原本用常规方法就能实现的功能。