今天不想聊别的,就想聊点 Bug,是不是感觉我有点傲娇呢?昨天大家的留言我都一一仔细看完了,看完之后,就想到了一句话:生命不息,坎坷不止。2016年大家真的是被互联网的资本寒冬折腾坏了,这真的跟我们编程一样:编程不息,Bug 不止。
我想大家看完文章的开头,肯定会以为,我用人生比喻编程,坎坷比喻 Bug ,来篇鸡汤解除大家人生和工作上遇到的饥饿和苦难,那你们就错了,我这个人就是不按常理出牌,咱们聊得就是编程中的 Bug 。因为我最近的工作老是跟 Bug 较劲,让我有点想吐槽了,仅此而已。
其实作为一个程序员最大的快乐我认为有两件事:一个是自己的软件或者产品,按照自己的心意做出来,并如期上线成功了;还有一个就是困扰自己很久的一个大 Bug ,突然被解决了。Bug 被解决的那种快感,那种感觉就像是被你追求很久的一个女神突然答应做你女朋友一样,让你心花怒放,春心荡漾,前几天是因为被 Bug 困扰的辗转反侧,夜不能寐,现在是兴奋的难以入眠。
作为程序员,自编程伊始,Bug 就会如影随形,因为它就是你的影子。Bug 就是软件的影子,和软件就是与生俱来的,是不可逃脱的好 CP,有着难舍难分的好感情。Bug 无处不在,对于程序员的酷爱,超越程序猿的老婆,它对于软件的痴迷,比程序猿还要厉害,即使再牛逼的程序猿也逃脱不了 Bug 的魔掌。
你有代码洁癖吗?
我相信大部分人都有代码洁癖,尤其是重症强迫症患者,最常见的一个现象就是有很多程序员不允许代码中有警告的存在,一定要消除掉才行,还有的是打括号的是时候特别喜欢成对的打,有的程序员就是看不惯大括号在左边和代码同行显示,有的就是不习惯大括号换行等等。你存在这种情况吗?自己有代码洁癖挺好的,有时候能让自己养成良好的代码规范,最起码写的代码整洁。当然现在的 IDE 可以帮你一键格式化。
其实如果每个人的代码格式洁癖不同,那除了自己之外的别人看起来就会很别扭。所以,我们程序员作为一个高频的跳槽职业,肯定会经常遇到去新公司接手之前离职前同事的代码的情况,那个痛苦不言而喻。交接查看代码的时间成本对于一个公司来说,还是非常大的。这时,我们就需要一个公司或者团队,有自己的编码规范文档,对于一些常量的定义,变量的定义,方法的命名都有自己的一个规范,这样新同事入职,看完规范再看代码其实能够节约不少时间。
遇到 Bug 时,你的反应是什么?
遇到 Bug 时,每个程序员由于性格不同,反应也不一样,看看你属于哪种?
理性的程序员会说:这个 Bug 能复现吗?
自负型:这不可能,在我这是好好的。
经验型:不应该,以前没这个问题啊?
幻想型:可能是数据有问题。
无辜型:我好都好长时间没碰这块代码了,怎么可能!
乐观型:只需要改一行代码,不会影响其它程序的。
实践型:你重启一下服务试试。
那如何减少代码中的 Bug 呢?
说了这么多废话,主题不就是想说,如何减少代码中的 Bug 吗?其实我这个人比较矫情,比起如何减少代码中的 Bug?我更喜欢吐槽。
每个团队制定一个代码规范,同一个项目,同一个规范。
熟悉功能需求,找到合适的功能框架。
编码之前,一定要先理清需求,将业务转化成功能点。根据功能点分模块,写方法。
编码过程中,一定要严谨的进行业务逻辑处理,比如:抛出的异常要处理,在 for 循环中,尽量不要频繁 new 对象等。 代码逻辑要清晰。
做好代码审查,Code Review 。不要懒于代码审查。
其实还是那句话,说起来容易,做起来难啊!就跟写注释一样,写一句注释能有多难,大部分程序员都懒于写注释,到最后,时间长了,自己都看不懂自己写的是什么玩意了。我相信大家都知道程序员讨厌的四件事,那就是:写注释、写文档、别人不写注释、别人不写文档。
编程不息,Bug 不止,在天愿作比翼鸟,在地愿为连理枝。天长地久有时尽,此恨绵绵无绝期。Bug 对你如此深情,如此爱你,你怎么能拒绝?这就是我们程序员编程工作中的必要需求。