九天雁翎的博客
如果你想在软件业获得成功,就使用你知道的最强大的语言,用它解决你知道的最难的问题,并且等待竞争对手的经理做出自甘平庸的选择。 -- Paul Graham

假如说Debug是减少Bug的过程,那么编程就是制造Bug的过程


假如说Debug是减少Bug的过程,那么编程就是制造Bug的过程

write by 九天雁翎(JTianLing) -- www.jtianling.com

讨论新闻组及文件

       有人说程序员工作中干的最多的事情不是编程,而是Debug,此言实在不虚。按我工作的经验来看,一般而言,设计占1/3,编码占1/3Debug/测试占1/3。但是实际上。。。由于工作中慢慢发现问题,除了专门的Debug调试及测试时间,在后期产品维护的时候也需要很多实现来Debug,在初期往往是Debug的定位容易,修改也容易,到了中期要定位一个Bug就很难了,但是改起来却非常容易,到了后期假如还有Bug,那么常常会发现。。。要改动的几乎就是架构。

       往往实际工作中的编程高手不是那种代码写的多么有技巧,架构多么完善灵活,程序效率多么高,真正让人佩服的就是一针见血,准确定位Bug的人。

       程序员也算是一个常常以工作经验来衡量水平的群体,并且此工作经验往往是以工作年份来计算的,做为刚工作的新人,也许偶尔看到公司的老员工写出来的代码会不屑,觉得自己也能写出来,甚至写的更好,偶尔看到公司的程序框架觉得设计太烂,与自己学习的设计模式经验相差太远,但是真正碰到Bug的时候却会发现差距。。。。新手最容易说的话就是这个程序不是我写的,所以改这个Bug我得先熟悉一下代码,而真正的高手,拿到代码碰到Bug基本就能猜到是什么问题。。。。

       今天碰到的事情让我对上述言论有了更加深刻的认识。

       公司的游戏专卖店系统首先出现了上架的物品加载不上的问题,修复后,出现了物品与账户不同步的问题。按道理有上架物品就应该有账户,没有一个上架物品时删除此物品。当出现有上架物品没有玩家账户的时候,我一筹莫展,仅仅是反驳总监提出的上架时物品没有添加的问题。然后找到代码,明明白白指出,当物品上架时,的确是添加了账户。但是总监发现的确是正确添加账户后,马上查询了删除账户的情况,发现原来是因为以前物品没有加载上来,我判断没有上架物品,将其账户删除了。

       这就是总监的Debug水平高于我的地方,尽管世界地图服务器的专卖店系统是我写的,但是,Bug确是他先定位到。一方面总监能够逆向的去思考Bug的起因,当账户和物品不统一的时候,添加账户也成功了,自然的就去看看删除账户的时候。并且还能够联想到刚才发生的物品加载错误的情况。这些真是经验,为了吃一堑,长一智,我决定都将其记录下来。

       今天的第一智自然就是逆向的思考Bug的起因,当账户不存在的时候,添加页正确了,那么是不是删除错了呢?

 

write by 九天雁翎(JTianLing) -- www.jtianling.com

 

分类:  随笔 
标签:  Bug 

Posted By 九天雁翎 at 九天雁翎的博客 on 2009年03月27日

前一篇: Bug实际不一定出现在看起来出现的地方 后一篇: Python,Spam的有趣由来