每天分享职场生活、职场攻略、领导同事相处技巧和创业资源
01
不知不觉工作8年了,可每天依旧如同勤劳的蚂蚁,默默地搬砖。最近,有人在后台留言分享一下开发过心得,今天就借此机会聊一聊开发中那点事。
首先申明一点,本人对程序天资并不聪颖,相反有点愚笨,所以不是什么技术大牛,程序只是一份养家糊口的工作,偶尔开发个软件娱乐娱乐。严格的来说,我不是个合格的程序员。
本人愚笨可以从下面两件事情可以得出:
有次朋友叫我帮她记得个手机号码,她说了一遍,我一愣,结果只记得前面3位,再问她一次,我那位朋友停顿了一下,我知道她想说我笨,只是她没有说出口。
高考我参加了两次还是没能如愿考上心仪的大学,时隔十多年过去了,我都不知道问题出在哪里。那会刚开始报的是理科,后改成文科政治,最后语文、英语、政治科目成绩勉强及格。
后来读大学时,也也不知怎么搞的,稀里糊涂的走上了程序这条路。扯远了,归回正题:
首先,对于程序员行业,相信大多数人都经历过加班,加班。是的,有时加班是时常的事,不加班反而觉得不正常。如果你不清楚,什么是程序员?程序员是做什么的?我们来普及一下:
程序员(英文Programmer)是从事程序开发、维护的专业人员。一般将程序员分为程序设计人员和程序编码人员,但两者的界限并不非常清楚,特别是在中国。软件从业人员分为初级程序员、中级程序员、高级程序员、系统分析员,系统架构师,测试工程师六大类。
对项目经理负责,负责软件项目的详细设计、编码和内部测试的组织实施,对小型软件项目兼任系统分析工作,完成分配项目的实施和技术支持工作。协助项目经理和相关人员同客户进行沟通,保持良好的客户关系。
02
每天5:30下班,我是如何做到的。是下午的5:30,不是凌晨的5:30。首先有一点得公司规定5:30是正常下班的,要不,讲再多都是瞎扯。
这里我们着重说定位问题能力和解决问题能力。
工作了8年了,编码能力没见增长多少,反而对定位问题有一定的想法。
编程不是一件容易的事,在编程的路上,我们总会遇到各种各样的难题和bug。当我们为bug定位不到问题而忙得焦头烂耳时,这是要是突然萌发想法,灵光一闪,定位到问题,那甭提有多幸福。
Android开发适配问题,厂商对原生Android系统做不同的定制,导致适配起来出现各种各样的问题。印象中解决过这样一个bug。
java.lang.AssertionError:Register too many Broadcast Receivers android.app.LoadedApk.checkRecevierRegisteredLeakLocked(LoadedApk.java:1010)
根据日志信息看到抛出的异常为:Register too many Broadcast Receivers,
注册的BroadcastReceiver过多导致。可查看这个项目才注册几个广播,这个问题是Monkey稳定性测试反馈,很难重现。
华为手机定制的ROM系统中有一个白名单机制,只有加入了白名单的APP才允许注册超过500个BroadcastReceiver,否则就会抛出Register too many Broadcast Receivers的异常。既然定位到问题,那我们就尝试寻找解决问题的方案。
华为手机定制的ROM系统做了限制,那么应该是在某一处做了校验操作。经排查,确实是华为手机定制的ROM系统做了限制。当时顿时整个人轻松了好多。篇幅有限,对于这个问题的解决方案,就暂时卖个关子了,下次再做分享。
03
一个隐藏的bug,可能能消耗我们一两天的精力,甚至更多,有时候甚至都不知问题出于何处。有次,客户Monkey压力测试时,跑了20多个小时,结果发现carsh 提供了2g多的日志文件,叫我们去分析,我们对其carsh产生的场景只能通过日志来定位了。想想要是不能通过日志快速定位问题,单单就这2G的文件就够我们折腾的。寻找关键信息,通过观察获得有关问题的更多信息有助于对问题进行充分的表征,也就是关于carsh的log日志,其他的日志暂时可以忽略。
如果你不清楚什么是Monkey压力测试,这里我们也普及一下:
Monkey是一款通过命令行来对我们APP进行测试的工具,可以运行在模拟器里或真机上。它向系统发送伪随机的用户事件流,实现对正应用程序进行压力测试。
一切推理都应该从观察和实验中得来。
——伽利略
工作中我们不仅要提高我们的编码能力,定位问题的能力也不能忽视。如果我们能在工作渐渐锻炼自己的定位能力的,不断从工作中总结经验,我想对我们的工作效率应该有所帮助。
这样即使我们不能5:30下班,起码我们能6:00正常下班,回家陪陪亲人。
【END】
我是洪生鹏,感谢阅读,祝女同胞们女生节快乐,年年18岁。
希望今天的文章对你有帮助。
领取专属 10元无门槛券
私享最新 技术干货