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