程序员调代码访谈:Brent Simmons

【伯乐在线导读】:『程序员调代码访谈』是 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 !

1 收藏 评论

关于作者:Janzou

做一直倦懒的小猫咪,享受午后阳光(新浪微博:@Jan_zou) 个人主页 · 我的文章 · 13

相关文章

可能感兴趣的话题



直接登录
跳到底部
返回顶部