前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >小bug,大智慧

小bug,大智慧

作者头像
用户1608022
发布2018-04-11 11:22:59
7220
发布2018-04-11 11:22:59
举报

程序员和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的效率,也免得到时候发现其实的是自己的原因时而打自己的脸,啪啪啪啪啪…真的很痛!

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2017-02-22,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 带你撸出一手好代码 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档