分享

敬畏每一行代码,填好每一个坑

 爱开发 2022-08-02 发布于广东

[ 爱开发]陪伴你一起成长,一起进步

01

团队里新来了一名成员,张工,应届毕业生,挺阳光的一位小伙子,为团队增加了不少气氛,更难得的是,小伙子工作上积极主动,让我们相处更加融洽。

团队刚完成了一个项目,新项目还在调研中,还没正式启动,目前工作主要工作中心是跟进旧项目的问题。

客户反馈了一个bug,不是很紧急,但并不代表不重要,张工自告奋勇的说,“这个bug他来跟进。”

鉴于bug不是很紧急,加上解决bug有利于帮助张工更进一步熟悉业务,就让他跟进了。刚好我也闲着,大致瞄了一下这个bug,也对这个bug进行了排查,半个小时过去了,bug也没有重现了。

这时,领导安排我去做跟进其他事务了,这个bug就放一边了。

02

第二天一早,张工说,昨天的bug他已经解决了。原来张工对不同的场景的排查,最后定位到内存问题。

这个bug是这样的:在华为某款机型上,项目中分享应用到第三方应用时,返回来项目失败了。

我们手头的设备没有重现,尝试杀掉进程,甚至卸载掉应用再次重装也没有复现。

张工联系客户,让客户提供了日志,通过日志分析,定位到问题。

在跳转分享到第三方应用前,我们用SharedPreferences保存了一个静态变量,等分享成功完跳回来之后,这时这个变量值被清空了。

按理说这个变量不应该被释放,导致了分享失败。我们知道,在系统资源紧张时候,系统会优先释放掉静态变量。

可能是用户的手机跑Monkey测试后,出现系统内存不足,导致这个变量被回收了。

03

能一步一步排查问题,定位问题,到最后解决问题。不得不为张工的锲而不舍的精神感动。

更难得是张工主动联系客户,叫客户提供日志,下班后主动留下来处理问题,更是值得肯定。

看到这,什么是bug,相信你应该能大致定义,指程序的漏洞或是缺陷,导致程序无法正常运行,甚至直接崩溃。

bug如同像一个烫手的山芋,对于bug,我们需要的是锲而不舍的精神,这也是最重要的,bug如同狡猾的猎物,它会激起出色猎人的兴趣,普通的猎人在经过一般周旋后,要是还是失败,很容易会选择放弃。而出色的猎人会一直跟踪到底,直到最终捕获。对待那些疑难的bug,真正的解决之道其实只有一个,那就是你要比它们更加顽固。

作为一名程序员,相信每个程序员都和它有过心酸的过往。

实际中我们一般会遇到那些让人抓狂的bug呢?大致可以划分为这三类:

  • bug很难重现;

  • 跟性能相关的bug;

  • 只会再特定情况下才出现。

缺少足够的分析问题的手段和工具。对于那些能重现的bug,一般来说相对比较容易解决,通过调试,一步步跟踪,总能找到问题所在。

但对于那些不好重现的问题,往往令人一筹莫展。

记得在一次技术分享会上,有位前辈分享了他的心得,对于每行代码,敬畏每一行代码,填好每一个坑。

这或是是每一个程序员的历练过程。

【END】

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多