之前我写过这么一篇文章:
发现data1把data10给吃了,为啥?
附上地址: //www.greatytc.com/p/528708a8f327
简单说来,就是一个在用代码匹配数据时,想匹配data1并对其做更新,结果同时匹配了data1和data10,导致data10的数据没了的故事。
不久后又在51testing上看到另一个故事:主进程xxx.jar, 辅助进程xxx_helper.jar。BUG是:在生产环境中,辅助进程xxx_helper.jar不定时无故崩溃。作者查了很久很久,包括各种优化,几乎把代码重写一遍,可bug依然存在。
讲述到这里,你应该已经根据我的第一个bug推导出了第二个bug的根因了吧:那就是kill主进程的时候,使用xxx关键字匹配,因此同时匹配上了主进程xxx和辅助进程xxx_helper,他们都被kill,但是重启的时候仅仅重启了主进程xxx导致。
根因很简单,在我的故事里,我也很快发现并改正了。可是51testing上面的那个故事,他就没有这么幸运了,几乎把所有代码都折腾了一遍,才发现原因。虽然在这个过程中,他也学习到了不少的东西,也对代码进行了性能的优化,等等,但,如果公司没有给他这么多时间折腾,或者说这个问题很影响用户,需要立刻解决呢?所以他也是幸运的。
那么,想一想你在工作中,有没有遇到类似问题的bug呢?欢迎留言。