你的程序为什么那么多bug?
2012-11-23 22:08
302 查看
许多程序员有个共同的毛病,就是不承认自己写的代码有bug,而且看别人的代码,感觉全都是垃圾。呵呵,不能怪,自古就有文人相轻这一说,所以言至今日,这些靠写代码来养家糊口也没有改掉这个毛病。这个毛病不改,如果还想在继续在这行当里往混,并且还想混好,恐怕没有那么容易。
我写的程序怎么会有bug呢?是的,你开始是满脸的诧异,不相信,像个刚娶进门的媳妇因为不懂规矩受到婆婆的责骂,有满肚子的委屈。可当测试人员(作为开发人员的你不知有多讨厌他们)拿着测试报告给你看的时候,你的脸是不是一阵红一阵白呢?
我们一起来看看你写的代码到底错在哪了吧:
1.最常见的错误,null,你统计一下,你在用一个对象的时候,是否判定他是不是空引。可以说,这是大多数程序员犯的错,你以为给对象赋值了,可以你想过:对象否赋值成功了么?是否每一条路径都覆盖到了呢?如果你能在你的程序当中避免空指针,我可以说,你已经不是普通的程序员了。
2.无效的列名或表名,或者无效的对象或引用。我告诉你,出现这类型的错误,是程序员根本没UT过代码,并且很可能这段代码是从其他地方copy过来的。如果你已习惯不管什么都实行拿来主义,那么,你干十年,二十年和干一二年没有什么区别。因为你就是一个复印机,不是一个制造机。如果原稿错了,复印出来的东西肯定是错的。何况,别人的代码有它的使用场景,怎么可以照抄过来呢?即使能拿过来,为什么你要把相同的东西写两遍呢,为什么不重构呢?如果想进步的话,还是少copy别人的东西吧,多动动脑。当然,有可能的别一种情况可能你的表更新了,但你对应的代码没有更新也有可能出现这种情况,总之,你不够仔细。
3.配置错误,很多情况下程序在开发环境下正常,但一旦正式环境就出问题,主要原因配置问题。这方面的bug可能占到你程序bug的三分之一。
4.系统一旦庞大起来,复杂起来,你的条件判定语句就是缺这或者缺那。这类问题的原因,主要是逻辑考虑不周,总以为自己考虑到了,但别人一提醒,感觉还有没考虑的地方。要解决这类问题,主要靠熟悉业务,程序员脱离了业务,写出来的东西只是理想的空中楼阁而已。
如果做一个程序员能把上面几个小问题完全解决,他真不是一个简单的程序员!
我写的程序怎么会有bug呢?是的,你开始是满脸的诧异,不相信,像个刚娶进门的媳妇因为不懂规矩受到婆婆的责骂,有满肚子的委屈。可当测试人员(作为开发人员的你不知有多讨厌他们)拿着测试报告给你看的时候,你的脸是不是一阵红一阵白呢?
我们一起来看看你写的代码到底错在哪了吧:
1.最常见的错误,null,你统计一下,你在用一个对象的时候,是否判定他是不是空引。可以说,这是大多数程序员犯的错,你以为给对象赋值了,可以你想过:对象否赋值成功了么?是否每一条路径都覆盖到了呢?如果你能在你的程序当中避免空指针,我可以说,你已经不是普通的程序员了。
2.无效的列名或表名,或者无效的对象或引用。我告诉你,出现这类型的错误,是程序员根本没UT过代码,并且很可能这段代码是从其他地方copy过来的。如果你已习惯不管什么都实行拿来主义,那么,你干十年,二十年和干一二年没有什么区别。因为你就是一个复印机,不是一个制造机。如果原稿错了,复印出来的东西肯定是错的。何况,别人的代码有它的使用场景,怎么可以照抄过来呢?即使能拿过来,为什么你要把相同的东西写两遍呢,为什么不重构呢?如果想进步的话,还是少copy别人的东西吧,多动动脑。当然,有可能的别一种情况可能你的表更新了,但你对应的代码没有更新也有可能出现这种情况,总之,你不够仔细。
3.配置错误,很多情况下程序在开发环境下正常,但一旦正式环境就出问题,主要原因配置问题。这方面的bug可能占到你程序bug的三分之一。
4.系统一旦庞大起来,复杂起来,你的条件判定语句就是缺这或者缺那。这类问题的原因,主要是逻辑考虑不周,总以为自己考虑到了,但别人一提醒,感觉还有没考虑的地方。要解决这类问题,主要靠熟悉业务,程序员脱离了业务,写出来的东西只是理想的空中楼阁而已。
如果做一个程序员能把上面几个小问题完全解决,他真不是一个简单的程序员!
相关文章推荐
- 为什么一个项目有那么多BUG
- 谈谈软件快速交付压力下程序猿们的“养寇自保”行为---为什么总在加班和通宵定位修改bug?
- 我写的source里,bug为什么那么多
- 为什么偶代码里 bug 会那么多呢。。
- 你知道为什么程序中的缺陷叫bug吗?
- 为什么我没有拔出钥匙 ——开锁引发的程序bug解决方案的思考
- 为什么我没有拔出钥匙 ——开锁引发的程序bug解决方案的思考
- C++ 程序稳定运行一段时间后异常中止,为什么?vc6 运行库的bug!!!
- 为什么CSDN的bug那么多?
- 代码没有任何改动,为什么程序执行会有Bug?
- 为什么那么多挂羊头卖狗肉的垃圾程序放在这里
- 为什么我没有拔出钥匙 ——开锁引发的程序bug解决方案的思考
- 你知道为什么程序中的缺陷叫bug吗?
- 为什么这样写要???是不是跟程序的执行顺序有关?
- 为什么装了windows mobile后vs2005下创建C#程序就只有smart device选项了?
- 网络程序为什么要处理SIGPIPE
- Android程序为什么没有退出设计?
- DLL中用malloc分配了一块内存,但是在exe程序中释放引发的错误:其原因可能是堆被损坏,这也说明 **.exe 中或它所加载的任何 DLL 中有 bug
- shell里的md5sum生成的结果为什么与程序生成的不一样
- 段寄存器是什么,在程序运行中起什么作用,为什么是程序运行不可缺少的