| 【伯樂在線導(dǎo)讀】:『程序員調(diào)代碼訪談』是 Karim Hamidou 發(fā)起的一個程序員訪談系列,受訪者分享他們遇到的最難/最有意思的Bug,以及如何解決。 
 本文是這個系列的第一篇,受訪者是Brent Simmons。伯樂在線已獲得 Karim 的翻譯許可。 你是誰? 
 我是一個軟件開發(fā)者。我住在西雅圖——美國西北部太平洋沿岸。 
 我和我的同事Dave Wiskus 和 John Gruber 寫了一個iPhone 上的筆記應(yīng)用 Vesper。以前,我寫過的應(yīng)用有NetNewsWire、 MarsEdit 和Glassboard。 
 我的博客是inessential.com,我和朋友Chris Parrish 在therecord.co 上有一個播客。 你解決了什么有趣的bug? 
 對于某些版本的OSX(可能是OSX10.5)蘋果改變了如何將崩潰日志存儲在磁盤上。之前是每個應(yīng)用一個文件,但后來蘋果改變成每個崩潰日志一個文件。 
 當(dāng)時,我的應(yīng)用NetNewsWire 有崩潰日志捕獲器來向我推送崩潰日志,所以我可以找出哪里出了問題并解決它。 
 我更新了崩潰日志捕獲代碼來處理新的格式,應(yīng)用進(jìn)行beta測試,最終代碼以它的方式進(jìn)入了下一個版本。 
 讓我出乎意料的是,當(dāng)下一版本發(fā)放時,一大堆人在他們第一次啟動這個應(yīng)用時遇到了應(yīng)用崩潰的情況! 
 我知道這一點是因為他們告訴了我,也因為應(yīng)用程序向我發(fā)送了他們的崩潰日志。 
 有趣的一點是,應(yīng)用程序崩潰在崩潰日志捕獲器本身。當(dāng)沒有崩潰日志時,我忘了測試崩潰日志捕獲器。 
 因此當(dāng)沒有崩潰日志時,它崩潰了。 
 只有至少創(chuàng)建一個崩潰日志,應(yīng)用程序才不會再次崩潰。這個bug是自愈的! 
 當(dāng)然,我在下一版本中修復(fù)了這個。(這是一個很小的錯誤,我只修改了一行。)我應(yīng)該已經(jīng)趕上了我自己,因為當(dāng)有東西為零時,進(jìn)行測試總是好的做法。 
 但是,這并不奇怪。開發(fā)者總有崩潰日志,同時我的beta測試者們也是。(因為他們使用的是應(yīng)用程序的未發(fā)行版本。) 
 我應(yīng)該有自動化測試,但我沒有。從中我得到了教訓(xùn)。我很幸運(yùn),在這一種情況下,崩潰可能永遠(yuǎn)只能在每臺計算機(jī)上發(fā)生一次。 
 作者按:第一個我要感謝的是Brent! 原文來源:Karim Hamidou | 
|  |