作为程序员,我把能写出无BUG或少BUG的程序看做是一个最基本的目标。如果被测出来,或者运营过程中被发现了很弱智的BUG,真是羞愧难当。有关如果编写高质量程序的书,看了不少,但实际实践过程中却收效不大。也许是太浮躁吧,看书的时候囫囵吞枣,没结合自己的时机去体会。
先给BUG分个类:
BUG类型1: 异常情况没处理到。
1. 数组越界:
1). 左边界
2). 右边界
3). 左边界<=右边界
2. 取集合长度时,注意为0的情况
3. 一个过程在执行过程中,他依赖的变量值被意外
这种BUG可能在几种情形下出现。简单的,在函数的实现中,我们常说要保持函数的短小, 要尽量延迟变量声明,以保证这个变量在用到时不要被意外修改。这种情形比较容易识别和避免。
多线程情况。其实就是竞态条件,写多线程程序时一般也会注意到这点,会加锁保护。
过程被分为顺序的几个部分,在不同的时间点被执行。这种情况就不太好发现了。一个完整的过程,须要分为不同的几个步骤,每个步骤顺序,但在不同的时间点不同的函数中被执行。他们如果依赖某一个全局变量的值,且要求在一个完整的过程中值不能被改变的话,就比较难处理了。这种情况下不好加锁,因为所有的步骤都是在一个线程中完成的。为每一个过程保存一个单独拷贝也不完美,这通常带来非常大的额外内存消耗,尤其是在更改操作非常少的情况下。引用计数或者写时拷贝或许是个不错的选择,不过实现起来就有些复杂。
BUG类型2:需求BUG
我是指需求收集的不完全,直到使用时才发现少了件必要的功能。这就是考验需求发现的本领了。在我所经历的项目中,
这一角色有时候就是程序员本身。那就更得注意了,收集需求是程序员的弱项。
编写高质量的程序
最新推荐文章于 2019-07-30 03:18:08 发布