程式設計師調程式碼訪談:Brent Simmons

Janzou發表於2014-11-25

『程式設計師調程式碼訪談』是 Karim Hamidou 發起的一個程式設計師訪談系列,受訪者分享他們遇到的最難/最有意思的Bug,以及如何解決。

本文是這個系列的第一篇,受訪者是 Brent Simmons。伯樂線上已獲得 Karim  的翻譯許可。


你是誰?

我是一個軟體開發者。我住在西雅圖——美國西北部太平洋沿岸。

我和我的同事 Dave Wiskus 和 John Gruber 寫了一個 iPhone 上的筆記應用 Vesper。以前,我寫過的應用有 NetNewsWire、 MarsEdit 和 Glassboard。

我的部落格是 inessential.com,我和朋友Chris Parrish 在 therecord.co 上有一個播客。

你解決了什麼有趣的bug?

對於某些版本的OS X(可能是OS X10.5)蘋果改變了如何將崩潰日誌儲存在磁碟上。之前是每個應用一個檔案,但後來蘋果改變成每個崩潰日誌一個檔案。

當時,我的應用 NetNewsWire 有崩潰日誌捕獲器來向我推送崩潰日誌,所以我可以找出哪裡出了問題並解決它。

我更新了崩潰日誌捕獲程式碼來處理新的格式,應用進行beta測試,最終程式碼以它的方式進入了下一個版本。

讓我出乎意料的是,當下一版本發放時,一大堆人在他們第一次啟動這個應用時遇到了應用崩潰的情況!

我知道這一點是因為他們告訴了我,也因為應用程式向我傳送了他們的崩潰日誌。

有趣的一點是,應用程式崩潰在崩潰日誌捕獲器本身。當沒有崩潰日誌時,我忘了測試崩潰日誌捕獲器。

因此當沒有崩潰日誌時,它崩潰了。

只有至少建立一個崩潰日誌,應用程式才不會再次崩潰。這個bug是自愈的!

當然,我在下一版本中修復了這個。(這是一個很小的錯誤,我只修改了一行。)我應該已經趕上了我自己,因為當有東西為零時,進行測試總是好的做法。

但是,這並不奇怪。開發者總有崩潰日誌,同時我的beta測試者們也是。(因為他們使用的是應用程式的未發行版本。)

我應該有自動化測試,但我沒有。從中我得到了教訓。我很幸運,在這一種情況下,崩潰可能永遠只能在每臺計算機上發生一次。

作者按:第一個我要感謝的是Brent !

相關文章