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

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


640?wx_fmt=jpeg

640?wx_fmt=gif


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】



   近期精选推荐


月薪3000,请不要跟我谈狼性文化,谈情怀


这座城市很炎热,孤单的人总是晚回家


640?wx_fmt=jpeg

分享职场攻略、技术心得和创业资源

更多精彩内容,请长按识别关注

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值