background image
世主!
” 
 
2、自己写的代码有 bug 
(1)运行很久的代码 
<1>被别人发现  bug  时—— 
傲娇者:
“我操,这个程序运行很久了,是不是真有 bug 啊?会不会是你弄错了啊?可以重
现么?什么!可以重现!肯定问题也不大,要不用户早投诉了,瞧你那惊慌失措的样子,真
是没见过世面。
” 
认命者:“好吧,你给我重现一下,我看看是什么问题?” 
<2>自己发现  bug  时—— 
心虚者:“他妹的,怎么又来 bug 了,还让不让人活了?” 
傲娇者:
“我操这个 bug 隐藏的很深啊,还好哥犀利犀利,没有被 QA 们发现,我得默默修
正之,再赞美下自己,最后再鄙视下 QA 们。” 
(2)新上线程序 
<1>被别人发现  bug  时—— 
“这个程序刚上线还处于调试阶段,有 bug 很正常,谁的程序没 bug,连操作系统都有 bug。” 
<2>自己发现  bug  时—— 
“哥就是犀利,自己开发自己测试,看测试那帮撒比什么也不会干,这么明显的 bug 都测不
出来,真是一群废物!
” 
 
当然,这些只是笑话,真发现 bug  时,还是要认真对待的,否则,重现当年“因为一个  bug  ,
炸弹
在关键点被引爆,直接导致
公司损失 400  亿”,到那时程序员能喊冤吗?程序员最
主要的职责就是学会如何处理 Bug,以及优化算法提高程序性能。因此,该调试时,还是不
容马虎的。 
 
那如何调试 bug  呢? 
先推荐两本书《Debugging Windows Programs》和《编程精粹》  。 
《Debugging Windows Programs》里面写了一些关于调试心理学的内容,现在节选一章内容:
1、错误调试的五部曲 
伊丽莎白-库伯勒-罗斯(1969 著作“On Death and Dying”  ,大陆译本叫《论死亡和濒临死
亡》)观察到病人面对死亡等灾难时有着不同的反应,她把这些反应划分为五个阶段,这五
个阶段也就是错误调试的态度。 
(1)否认(Denial):这是一个 Bug 吗?是我的吗?