调试、修改bug是每个程序员最头疼的事,在发现bug时,首先要在自己代码中找问题,然后可能在测试一万次之后,把问题归咎于编译器,在所有的问题都不解决之后,再考虑硬件问题,这样的过程,大概是程序员生涯最痛苦的事了。
那么亲们,你们见过或者遇到过最经典的BUG有哪些?
笔者在此搜集了一些经典的bug出现场景,你中了几条?欢迎留言!
01
我的产品说明一更新,应该被封为Bug之王了吧?有比我厉害的吗?评论区见~
再说一个当年我封神的一个bug。
板子不间断运行一周就会死机。
每次复现都要一周。
复现后并不能定位问题的位置,需要反复复现排除。
三周过去了,还没定位。
老大急眼了,让我这个半神参与故障解决小组。
我借了块板子,插好上电等复现。半小时后,故障出现了。部门轰动了。
为什么我能半小时复现?
因为我把数据线插反了。
从此成神,江湖留下了我的传说。
..........
02
之前有用户反映每次用笔记本播放李娜的青藏高原时,电脑就会死机。
经测试发现,唱到最后的“那就是青藏高...”时,硬盘产生了共振,振幅过大,读写头读不出数据了。
为了抓住这个bug,朋友听了一个月的青藏高原...
03
必须硬答一波了,这个bug找到原因的时候我简直要死了。
本人在某外卖平台负责前端工作,碰到了一个临时大项目,
需要把原来平台的老代码迁移一部分功能到新平台中,我负责的就是物流相关模块的代。
开发过程中碰到一个莫名其妙的问题就是页面在展示物流配送区域的地图时候原本应该展示的地图加载不出来,
正常的效果应该是这个样子的:
然而实际是这样的:
碰到bug本来是很正常的问题,不出bug才不正常呢,开发过程中最怕的就是遇到这种第三方组件库运行不正常的问题,
因为你也不知道这个问题是出在你这里还是组件库出的问题,定位问题就要了老命。
于是我找到了地图官网网站,把需要的所有接口的API文档都看了一遍,每个需要用到的字段都核对一遍,
然后逐条对比两边数据,然后发现不管我怎么折腾特么的地图展示的永远都是蓝色背景。???WTF?
从下午一直折腾到晚上还没弄好,
正当我自暴自弃怀疑人生的时候无意碰到了鼠标的滚轮,于是地图缩小了,
突然我就发现地图中出现了除了蓝色背景之外的东西,然后我继续缩小就发现地图从始至终都运行的正常的,
之所以背景全是蓝色是因为特么的这是海洋,
后端哥们取不到上游的真实数据就随便给我写了个经纬度0 0 的数据,给我定位到大西洋了。
顿时我怒从心头起,恶向胆边生,站起来就要打人,
一看周围就我一人了,再看时间已经两点半了,对接的后端哥们早就跑路了,
没办法只能一边提醒自己赶紧回去睡觉,一边提醒自己明天上班别忘了带刀。。。
04
说说我做Android系统遇到的一个bug。
测试妹子提了一个bug,说她在午休的时候看手机,屏幕亮度有时候会突然变亮或变暗。
我查看了log,没有特别的异常,亮度确实是变化了。
午休的时候,我们是关灯的,光线比较暗,难道这个时候手机的亮度自动调节会有bug?
我把手机放到桌子下面黑暗的地方,抓取log,查看亮度,没有大的波动啊。
但妹子却表示这个问题她很容易复现。
于是我决定找妹子当面聊聊。
这是一个萌妹子,眉清目秀的,眼睛大大的,戴着一副圆框眼镜,微微泛着青光。
在妹子描述她的测试过程的时候,我一直望着妹子美丽的面孔,
不知道妹子有没有男朋友呢,妹子都有些害羞了,转过头去,
突然间,我兴奋了,对妹子说,你转过来,让我看看,
妹子惊愕的看着我。
我继续说,你的眼镜反光。
答案确实如此,眼镜反光,L-sensor接收到的亮度发生了变化,进而影响到了屏幕亮度。
解决的那一刻,我觉得我是柯南。
05
以前在看过有人帮学妹检查代码的故事,
bug是学妹写完总是出现随机错误,检查一遍发现有多余字符,
但让他重新写一遍就没问题,反复几次如是。
每次多余的字符和位置都不一样。
抓狂之后答主直接去找学妹要她当着自己面写一遍。发现了问题:
学妹键盘放的太低,偶尔弯腰拿水杯什么的时候,胸会压到键盘……-_-||
06
之前在 Quora 上看到一个类似问题,我先大体引述一下:
作者为医院急救设计了一个相关程序,在实验室运行良好,但是每次在医院调试都出 bug,
作者只好到医院去调试,而且是当着急救病人!!!
经过漫长的测试终于发现,是由于医院使用的X射线导致电脑内存总是丢失几个 bit 的信息,而导致程序出问题,
最终通过把电脑的内存用铅板隔起来解决!
对了,还有一个类似例子的也是这样,大体也是由于山上的辐射过大,导致电脑丢失bit信息。
如我们普通程序猿对于这样的 bug,只能是默默流泪了……
我去,真的牛逼!
07
写JS,自己手机没电了,拿同事老张的安卓机调试,
很简单的获取用户微信昵称,结果死活获取不到,一直显示为null。
应该是跨平台问题,因为之前在自己iPhone上是没有bug的,
拼命看api文档,但是都没提到这方面。急死我了。
......
刚刚老张告诉我他的昵称就是null。
......
老张已被打死
......
前面夸张修辞,老张最后当然没死,腿打断了而已。
08
最后,来一个总结,所有人一定要注意报告bug的礼仪,那就是永远也不要对程序员说:你的代码有BUG。
因为他的第一反应是:
1、你的环境有问题吧?
2、傻哔你会用吗?
如果你委婉的说:你这个程序和预期的有点不一致,你看看是不是我的使用方法有问题?
他本能的会想:操,是不是出BUG了!
哈哈,看到最后,各位攻城狮们,你们遇到的最难调的bug有哪些呢?最让你印象深刻的有哪些呢?