Dict.CN 在线词典, 英语学习, 在线翻译

学海苦作舟,书山勤为径

留下点回忆

常用链接

统计

积分与排名

Denoise

English study

Web技术

数据压缩

一些连接

最新评论

程序员怎么样才能保证自己的程序没有BUG

毫无疑问,程序员是善于思考问题的一族。一个程序的编写都是通过:思考、设计、编写、调试、测试以及运行这些基本的阶段。但大部分程序员都有一个问题就是不太愿意测试自己的代码。他们草草的调式完成以后就认为工作结束,测试那是测试人员的工作。

按照理论上,如果代码存在问题,那么测试人员和最终的用户肯定可以发现这些 BUG ,而等待哪个时候再返回来查找问题到底错在什么地方确实代价不小,其代价有:

1.  影响了程序员自己的声誉

2.  影响了产品的质量

3.  影响了客户的信任度

4.  这个时候再 DEBUG 难度增大了许多。

大的不说,就说多自己声誉的影响吧。如果你的程序总会有这样那样的 BUG ,你得到收益会减少,即使你写了很多代码。

其实最后一点也很重要;在我们面对一块代码的时候,什么方法都好办,但如果将这块代码防到庞大的系统中之后,简单的问题也难以被立即找出来。为了自己考虑,节省自己 DEBUG 的时候,我们应该让我们的程序尽量没有 BUG


那么怎么样才能保证自己的代码没有 BUG 来? 
 

程序员必须克服一些自身的致命缺点才能够从根本上解决这个问题。那么这个问题是什么?前面我们已经提到,程序员对自己的代码都非常宽容,认为那是正确的没有问题。实际上这种想法比较正常,程序是通过程序员思考和设计之后才写出来,程序员不会将自己认为不正确的东西写到代码里,而到这个时候都一直假设程序是正确的;但人非圣贤,怎么可能不犯错误来。实际上程序员在对待其他程序员时候的态度就很好,带着一种挑剔和学习的态度;但一旦对待自己的代码就很难这么做;这就是最致命的。程序员也必须对自己的代码带着挑剔和学习的态度;这个基础是假设自己的代码是错误的,然后需要做的是怎么样证明自己的代码是正确的。程序员自身可以在程序生成的每个阶段做这些工作:仔细的设计(这个时候画点时间是值得的,必须保证我们对自己的程序有清晰的轮廓后才能开始动手写)、编写代码时、单元测试(单元测试的重要性就不在赘婿了)、功能测试。

仔细的设计:这个的仔细是说在程序员编写代码之前,其必须对代码的整个结构以及逻辑结构有明确的清晰的了解,只有这个时候才可以去写代码。这里没有谈到文档,但我说到了一定要清晰的思路,但清晰的思路不是每个人都可以在脑袋中直接形成的,很多人都是普通人,没有办法在脑袋瓜中把所有问题都想清楚,那么就记下来,特别对于复杂的逻辑。

编写代码:对于没有把握的代码,例如:新设计的算法,最好保证其正确性。可以单独将这部分测试,这可以让代码模块化的同时又保证了代码的正确性。一句话:少量的代码保证质量还是比较简单的。

单元测试:单元测试的重要性不在赘叙了,现在也有许多工具可以帮助程序员并减少工作量。

功能测试:程序员保证自己代码质量的最后一关;为了做这样的工作我们可能必须写一些代码来测试,甚至是测试工作。使用大量的 CASE 来测试,以及错误的 CASE 。这里和测试人员的测试不同之处在于:仍然让程序员的注意力放在其自己的代码范围内,减小了排错的难度。

 

如果你通过了以上的步骤都找不出你程序中有任何问题的话,那么我想你的程序应该足够健壮了。其实还有一点必须说明的就是:代码 REVIEW

前面说道了程序员对待别人代码的态度是挑剔和学习的态度,所以让其他程序员来 REVIEW 你的代码也是检查程序有没有逻辑错误的很好的办法。团队中应该交叉 REVIEW 代码,这是实践的经验。

作为一个好的程序员必须有以上的习惯,以及对待自己代码象孩子一样,我们要爱惜我们的代码,同时也要让代码走正确的路。

(有感于程序员的八荣八耻 而发)

posted on 2006-06-28 11:29 笨笨 阅读(1207) 评论(6)  编辑 收藏 引用

评论

# re: 程序员怎么样才能保证自己的程序没有BUG 2006-06-28 18:34 LOGOS

程序没有bug。。。。
要么是你的程序过于简单,要么只能说明你的程序已经很健壮了。
没有Bug的事情的确很难想象  回复  更多评论   

# re: 程序员怎么样才能保证自己的程序没有BUG 2006-06-29 09:05 niming

很难保证没有bug,只能说尽量减少bug。
通过严格的单元测试是个方法,同时还要有相应的一系列规范。
不过我感觉做c++的写单元测试的好像不多啊:)  回复  更多评论   

# re: 程序员怎么样才能保证自己的程序没有BUG 2006-06-29 17:57 笨笨

其实我这里不想和大家争论什么是BUG或什么叫没有BUG,关键在于写程序的态度,如果作为一个程序员自己都认为自己的程序有BUG,那么你不是合格的程序员或者说不是好的程序员。希望大家可以理解我的意思。  回复  更多评论   

# re: 程序员怎么样才能保证自己的程序没有BUG 2006-07-15 10:59 kylin

从QA的角度来看,“程序员怎么样才能保证自己的程序没有BUG”是很可笑的,除非你不写程序。  回复  更多评论   

# re: 程序员怎么样才能保证自己的程序没有BUG 2006-07-16 20:44 笨笨

对于kylin的问题,我想其实根本不用回答,因为QA是为了找程序员的BUG,和程序员怎么样保证自己没有BUG,一点关系都没有。  回复  更多评论   

# re: 程序员怎么样才能保证自己的程序没有BUG 2006-07-16 20:47 笨笨

还有一种理解就是,QA测试无数次,程序员修改无数次之后才保证的代码能够正常,没有BUG的情况提前到来,在第一次由程序员将代码交给QA的时候完成。我想大家不要光看题目,因为没有BUG是目标,保证没有BUG是过程。  回复  更多评论   


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理