小bug,大智慧

程序员和BUG之间的关系很奇妙, 相互都不喜欢对方, 又离不开对方, 是一对相爱相杀相互纠缠永远无法摆脱对方的对手。

每一个BUG都是程序员无意创造出来的,程序员对于BUG的态度完全是恨的咬牙切齿。 很多场景下,当有人反应程序员写的程序有BUG的时候, 程序员的第一反应是这个BUG肯定不是自己的代码有问题产生的, 而是由外部因素起的。比如说某张网页显示效果出错, 前端程序员第一反应肯定是用户的浏览器有缓存或者使用了什么老掉牙的浏览器在浏览他做的网页; 再比如说某个程序访问数据库出错, 后端程序员第一反应也肯定不是自己写的SQL或代码有问题, 而是怀疑是不是数据库或服务器出了故障。

多人开发的项目中, 在BUG的生产者难以界定的情况下尤其如此,当出现BUG时, 程序员一般的应对方法是:“你去找某某某, 这显然是他的问题。”,然而,结果往往是啪啪啪的打自己脸。

这也难怪, 自己一行行写的代码, 调试,运行,上线,像自己儿子一样养大的, 但是在毫无征兆的情况下儿子突然去干坏事了,这种意外的情形下很难不认为儿子是被坏人给带坏的。 然而, 世事无绝对, 意外意外那自是意料之外的事情,永远不会和自己的逻辑在同一个方向上,有的事情就是借你一百个脑袋也想不到居然会是这种结果,程序的BUG也是如此。

前段时间我们部门开发一个Java程序,有新的同事要参与进来,开发环境和运行环境都装好了, 但是跑程序的时候速度奇慢, 别人的电脑上5秒钟运行的程序在这里需要跑1分钟左右才能出结果, 显然这是难以接受的。 从代码、数据库到开发环境、Java编译器、Java虚拟机都仔细检查了一遍也没有找到原因, 软件从62位换到32位,服务器从六点几版本换到九点几版本, 但是该慢还是慢,问题照旧。正在快要绝望的时刻,我无意间发现程序的代码居然不是放在本地的, 而是在映射到本地的网络磁盘上。 如果是这样, 不慢就见鬼。运行程序需要先把代码下载到本机, 再编译运行, 所有花掉的时间居然都在网络传输的开销上面。 这就是完全出人意料的情形了, 因为在思维先入为主的情况下, 谁能想的到源代码不在本地机器上而在网络上, 假如没有线索, 能想的到那脑洞该有多大。

这个例子是网友分享的,我当时看到就笑喷了。 一前端哥们,开发基于微信的应用, 调用微信接口来获取用户的信息,因为有Android和iOS双平台, 所以这哥们向同事借了个手机调试Android平台的版本。 在调试的过程中Android上的应用怎么也获取不到用户的昵称, 调用接口返回的结果总是null, 而在iOS平台上一切正常。 这位仁兄心急火燎的, 想尽办法也束手无策, 微信文档看的都快背熟也找不到获取不到昵称的原因。 后来,借给他手机的那位同事告诉他, 他微信用户的昵称就叫做null

可以设身处地的想想那位仁兄的心情, 杀人的心都有了吧。这样的BUG,就算是专业的编剧也没有这份想像力想的到,更何况是注重逻辑的程序员了。

所以, 程序员千万不要对自己的代码太有信心, BUG永远出在你意想不到的某个角落。 碰到BUG的时候,首先找找自己的原因,在拿到充足的证剧的情况下,再可以去怀疑别人, 这样即节省了时间提升解决BUG的效率,也免得到时候发现其实的是自己的原因时而打自己的脸,啪啪啪啪啪…真的很痛!

原文发布于微信公众号 - 带你撸出一手好代码(gh_afab56b37671)

原文发表时间:2017-02-22

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏即时通讯技术

解密“达达-京东到家”的订单即时派发技术原理和实践

达达-京东到家作为优秀的即时配送物流平台,实现了多渠道的订单配送,包括外卖平台的餐饮订单、新零售的生鲜订单、知名商户的优质订单等。为了提升平台的用户粘性,我们需...

23110
来自专栏Java架构师学习

一位阿里架构师给每个程序员的小建议

1 想清楚,写清楚,说清楚,才是真正的清楚! 2 多花点时间沟通清楚需求,才能把握正确方向! 3 修复需求错误的成本是代码错误的几十倍! 4 程序员最大的坏习惯...

36480
来自专栏CSDN技术头条

Uber 四年时间增长近 40 倍,背后架构揭秘

据报道,Uber 仅在过去4年的时间里,业务就激增了 38 倍。Uber 首席系统架构师 Matt Ranney 在一个非常有趣和详细的访谈《可扩展的 Uber...

27970
来自专栏FreeBuf

手机数据传输安全分析

如今手机已经成了我们离不开的伙伴和知己,它了解我们的日常生活。然而每一天在路上的时候,它都会收集我们的私密信息。平时我们会用它拍照,在社交网络中分享我们的心情;...

234100
来自专栏Eugene's Blog

2018黑帽SEO优化排名技术方法大总结分类目录文章标签友情链接联系我们

84320
来自专栏编程之旅

iOS漫谈——对于项目架构的思考

又一次的版本更新上架,心情容不得片刻舒缓,新的迭代任务又明白的摆在桌面上。今年上半年自己琢磨完ReactiveCocoa之后,对手上了项目做了MVVM架构的尝试...

14230
来自专栏申龙斌的程序人生

笑来投资演练小程序0.9版本发布

在阅读了李笑来得到APP上《通往财富自由之路》专栏第24周的“开始投资活动的条件是什么”文章之后,我快速用C#写了一款windows小程序,没想到发布在学习小组...

33970
来自专栏我是攻城师

携程全线瘫痪,传言代码被恶意删除

37250
来自专栏java一日一条

我的 Linux 一万小时

这不是一篇鸡汤文,因为我并没有在使用 Linux 一万小时后成为 Linux 达人,甚至在很多方面,我连新手都算不上。我走的这些弯路能篇成一本很有参考价值的反面...

28710
来自专栏程序员互动联盟

为啥安卓手机越用越卡?

根据第三方的调研数据显示,有77%的Android手机用户承认自己曾遭遇过手机变慢的影响,百度搜索“Android+卡慢”,也有超过460万条结果。在业内,An...

40170

扫码关注云+社区

领取腾讯云代金券