世主!
”
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 吗?是我的吗?