转载

【译】如何避免程序崩溃-8:基本架构

原文链接: http://inessential.com/2015/06/10/how_not_to_crash_8_infrastructure

即使你觉得自己的app是无故障的,你也需要收集崩溃日志 —— 因为没有什么是无故障的:只有 已知 的崩溃bug是可以避免的。

有一些做这类事情的服务,我尝试过的还都不错,所以我在这里就不做特别推荐了。

有几点功能是它应该具备的:

  1. 崩溃日志被收集的过程,不需要用户手动查找它们再发送给你。它应该是自动化的(如果在OS X上,用户可能会收到提示;而在iOS上没人会希望被弹窗)。
  2. 要有给崩溃日志分组的机制,你得到的应该是每一组的汇总,这样你就能知道哪些经常出现,哪些不经常出现。
  3. 要能够给一组问题标记为已解决。

当然,仅仅收集崩溃日志是远远不够的。你应该定期查看它们。(我每天早上查看崩溃日志。)

Bug跟踪器

要有一个。

对于我私人的项目,我会综合使用Lighthouse,OmniOutliner和纸笔 —— 当然你可以使用任何工具,只要你的崩溃记录归总到你的bug跟踪器里面而不会遗失。

(Lighthouse是个不错的bug跟踪器。我喜欢用OmniOutliner来标记大的新功能或者完整的app,在那里我可以建立to do的事件树。对于短周期的事情 —— 比如完成一个10步就可以完成的任务 —— 我喜欢用纸笔,因为依赖短期记忆很让人疲倦,而纸笔不会干扰屏幕上的上下文环境。)

错误和警告

Xcode默认不会打开足够的错误和警告。我强烈推荐 Peter Hosey的集合 。

关键是要移除你代码中的 不确定性

就像我推荐的,我更进一步:我像对待错误一样对待警告。是的,这就意味着,如果警告存在我甚至不能在本地debug —— 但是这条守则物有所值。它意味着无论何时,只要我的app在运行,就不存在任何警告。

Instruments

Instruments非常棒。查看你的app分配了多少的内存是个好主意,同时,查看内存泄漏也是非常重要的。

如果你的app崩溃了,使用Zombies工具是个好主意。你的问题可能和zombies并没有关系,但是在怀疑的过程中,排除法是很值得使用的。

原文  http://www.calios.gq/2016/01/21/【译】如何避免程序崩溃-8:基本架构/
正文到此结束
Loading...