程序员修改那些丧心病狂的BUG,得知真香后瞬间崩溃!

我们经历的大部分bug有的被其他人修复了并且在互联网分享出来了,这时候我们通过Stackoverflow、Baidu、Google等搜索引擎找到答案了。但是我们在工作中也可能会遇到一些疑难的bug,这里bug我们在搜素引擎上找不到解决方案,可能好几天都不得其解,这些迟迟没有解决的bug往往搞得人焦头烂额。

那作为一个苦逼的程序员,究竟碰见过哪些丧心病狂的bug呢?下面,我们来看看他们与bug的故事。

#小A:

写JS,自己手机没电了,拿同事老张的安卓机调试,很简单的获取用户微信昵称,结果死活获取不到,一直显示为null。应该是跨平台问题,因为之前在自己iPhone上是没有bug的,拼命看api文档,但是都没提到这方面。急死我了。......刚刚老张告诉我他的昵称就是null。......老张已被打死......前面夸张修辞,老张最后当然没死,腿打断了而已。

#电商行业程序员老K:

也谈谈自己遇到的一个bug吧,我之前是做电商的,某较大的电商平台,突然有一天,C2C的店主反馈,看到的订单不是自己的,看到后台的商品列表也不是自己的。当时在睡午觉,看到这个问题,立马吓醒了,平时5个投诉就是一个故障单,那还都是一点体验上的小问题,这种订单混乱,商品混乱的错误,真是要紧急死了于是,主管,总监都来看这个问题,一群大佬在后面看着,赶紧找最近几天的发布,测试情况,一个个回退,一个个检查,最后都无法解决问题,要知道时间一分一秒过去,半个小时还解决不了就要出大事了后续又有用户来投诉,直接电话联系,远程控制电脑,发现操作起来巨慢,于是顺口问了一下用户的网络是什么网络。结果他说是:“某城宽带”,一瞬间,有点感觉了,继续问其他几个投诉的客户都是“某城宽带”,然后我们打电话到那个宽带的运营商,得到的回复是“年底了,为了省流量,他们做了一部分缓存”他们做了缓存做了缓存……缓存……存……可是为毛TM的动态请求还做缓存啊,修改商品和订单的时候,随机返回成功或者失败 ......1.这个和时间戳也没关,我们都加了token的,他们也忽略了

2.你没猜错,他们把POST和GET动态请求也缓存了,就是说你提交了一个POST修改商品的请求,他从环缓存里面随便丢个回复给用户,用户感觉修改成功了,其实请求根本没到我们这边,是的,就是这么丧心病狂。

#系统管理员老王:

从前我是个系统管理员,平时去机房登录服务器时都是站着操作。有一次腰疼,搬了个凳子坐在了机器前面,完蛋,死活登录不进去,提示密码错误。于是我站了起来,重新输入了一次密码,进去了。后来我觉得奇怪,于是抽时间做了测试,发现:只要一坐下,就密码错误,站起来就好了。这个 Bug 在我的职业生涯中持续了好几年,一直以为是什么灵异事件。直到有一天公司升级设备给我换了个键盘。原来是老键盘上有两个键装反了,站着打字是看着键盘,坐着盲打就错了,真的是很无语啊……

为了修改BUG,程序员们也是煞费苦心啦!

#至于如何能高效地修改BUG呢?给大家提一些建议

先根据情况试一下下面的步骤:

  1. 换个环境试试
  2. 换个用户试试
  3. 换个操作方式试试
  4. 换一下数据试试
  5. 换个浏览器试试
  6. 换个版本试试

根据上的情况搞清楚下面这几个问题:

  1. 这个BUG什么情况下出现?什么情况下不出现?两种情况的区别在哪里?
  2. 这个BUG之前没有,现在出现了,中间都动了什么?
  3. 这个BUG生产环境出现测试环境不出现,两个环境区别是什么?
  4. 同样的功能,这样操作没有BUG,那样有BUG,两个操作的区别是什么?

  1. 输出结果与预期不符,这种BUG一般都是由于代码逻辑错误造成的,如果能在开发环境重现,最好解决方法就是单步调试,设定每一步代码的预期结果,然后跟踪判断实际结果是否与预期结果一致,不一致的分析原因,如果在开发环境无法重现,无法单步调试的,可以采用添加输出日志的方式判断哪一步的问题。
  2. 系统异常报错,这种情况下需要提取日志,找出错误堆栈信息,这时候最重要的事情是要把堆栈信息看懂、看完整。这是很多经验不足的程序员常见的问题,就知道报错了,报的什么错,这个错代表什么一概不知。而且往往堆栈信息是一个套一个输出。
  3. 系统Crash,这个问题常见的原因是负载过高、并发过高、或者配置错误。最常见的就是内存溢出。这时候要首先排除配置错误的原因,主要靠查看Crash Log来分析原因,如果Crash Log没有有用的信息,就得排查硬件、内存、网络等方面的设置,看是否有配置错误的地方。再找不到就在测试环境用开发模式进行压测和调试。
  4. 系统响应缓慢,这种问题一般是存在资源竞争或者系统资源不足的情况,先检查服务器内容、CPU、网络情况,如果服务器压力过大,排查应用系统负载情况是否异常,如果这些数据都正常,就需要排查代码中的性能瓶颈,可以采用profile工具或者直接输出时间戳的方式查看哪个操作占用时间最长。特别需要留意依赖第三方接口的情况,比如同步的方式发送邮件、发送短信、写文件等。

这里推荐一下我的前端技术分享群:731771211,里面都是学习前端的,如果你想制作酷炫的网页,想学习编程。自己整理了一份2018最全面前端学习资料,从最基础的HTML+CSS+JS【炫酷特效,游戏,插件封装,设计模式】到移动端HTML5的项目实战的学习资料都有整理,送给每一位前端小伙伴,有想学习web前端的,或是转行,或是大学生,还有工作中想提升自己能力的,正在学习的小伙伴欢迎加入学习。

点击:加入

原文地址:https://blog.51cto.com/14197670/2357142

时间: 2024-10-08 12:29:53

程序员修改那些丧心病狂的BUG,得知真香后瞬间崩溃!的相关文章

当程序员说“这代码写的可真烂”,他们的意思是“这烂代码不是我写的”。而当他们说这段代码有些“小问题”时,很可能这代码是他们自己写的

英文原文:What Programmers Say vs. What They Mean 你是否听到过同事说“这段代码不言自明”?你的同事的这句话的实际意思是这段代码不需要写注释. 你也许注意到了,很多时候,程序员所说的话的字面意思和其真实的意思是完全不同的.不用惊异,下面你将很快知道这些暧昧的短语和其深层次的意思都是什么. 最近 Imgur 上出现了一张图片,里面列举的程序员的一些专业术语和其含义,它能很好的帮助你理解这些话的真实意思.这里是对其中的精华进行的总结. 典型的程序员之间的对话 当

如何跟程序员谈一场没有Bug的恋爱

现在越来越多的妹子把恋爱目标锁定在程序员上,原因无他:呆萌又多金.但如何和程序员相处一直是个问题,这篇文章就教你如何优(xin)雅(ji)的驯服程序猿男友 博主诚心推荐(单身狗慎往下滑,后果自负) 以下正文 我和男朋友在一起不到一年,他程序猿一枚,标准的加班狂.前两天和他吵架,要知道,和这样理科思维以及逻辑性这么强的人吵架,是一件很累的事情,比如你为什么生气,他要你把原因说出来,怎么解决这个问题,他也要你说出来,特么的,说出需求,还得要给他解决方案.虽然最后还是和好了,不过,对于要怎样和程序猿谈

[程序员代码面试指南]数组和矩阵问题-数组排序后相邻数的最大差值(桶排序思想)

题意 给定一个整形数组arr,返回排序后的相邻两数的最大差值. 题解 借助桶排序思想. 首先遍历一遍获得最大值max,最小值min. 设数组长度为len,则有len+1个桶,桶负责的区间大小是(max-min)/len,数字num放入的桶id是(num-min)/((max-min)/len)即(num-min)*len/(max-min). 由于min在桶0,max在桶len+1,所以一定隔了至少一个空桶.所以"排序后的相邻两数的最大差值"一定是相邻的两个非空桶的(区间存较大数的桶)

从一个程序员笑话看软件开发管理(转载)

从一个程序员笑话看软件开发管理 原文出处:猛禽的编程艺术 原文链接:http://blog.csdn.net/raptor/article/details/727299 有一个笑话是这样的: 1. 程序员写出自认为没有Bug的代码. 2. 软件测试,发现了20个Bug. 3. 程序员修改了10个Bug,并告诉测试组另外10个不是Bug. 4. 测试组发现其中5个改动根本无法工作,同时又发现了15个新Bug. 5. 重复3次步骤3和步骤4. 6. 鉴于市场方面的压力,为了配合当初制定的过分乐观的发

一个bug程序员的入园

大家好,我叫dg是一个只写bug的程序员.当然只写bug也是有好处的,那就是踩过的坑多了,摔的跟斗多了,并且没有被摔死,勇敢的活了下来,练就了一身钢筋铁骨.哈哈,开个玩笑.但是猜的坑多了就知道了哪里有坑,以后就可以避免在关键的时候踩坑.所以我入园的目的就是向大家展示一些我曾经踩过的坑,避免新入行的小伙伴多走弯路.同时写的有不对的地方还请大家多多评论指出,让小院子里更加的丰富热闹起来 原文地址:https://www.cnblogs.com/dg-123/p/12059206.html

毁掉程序员的十个恶习

作为一个敢于追求潮流的人,并励志做到专业的帅哥,在学习前端的这段时间里发现了自己很 多的弯路,下面分享一下(供大神拍砖). 从学习web前端开始的1个半月的时间里,自己从一名刚开始的网络方面思考方式转到软件开发 人员敏捷的程序思考方式.成为一名软件开发人员不是那么的容易,尤其是自己在大学期间把 所有的精力都用在了网络方面,所以现在自己的软件方面的知识很少,思维也不够的灵活,但 这是缺点同时也是优点,大学教会了自己养成认真的习惯,努力肯学,同时也培养了自己的思 考能力,但我知道这些思考能力是远远不

周鸿祎谈程序员创业

原文链接:http://geek.csdn.net/news/detail/45409 昨天与大家分享了自己的创业经验,得到了很多程序员的鼓励与支持,诚心感谢大家的共鸣!由于极客邦SOHO项目开始不到半年,怕对各位程序员有所误导,特意找出周鸿祎在接受媒体采访时分享的程序员创业经验,大家一起努力,从一个小程序员干出自己的一番事业!正文如下: 程序员创业的特别之处 关于程序员创业,我之所以愿意谈我的观点,是因为我是程序员出身,也是从小公司做起来的,我自认为对待很多程序员个人包括共享软件作者和一些小网

***周鸿祎谈创业:很多程序员高智商 但我一看就知道他们不会成功

很多人都向往着有一天自己创业,程序员更是如此.如果你想创业,那么该怎样创业.需要有哪些准备.自己还有什么不足等等这些问题你考虑过吗?本文就跟大家分享周鸿祎在接受某媒体采访时给程序员上的创业课. 程序员创业的特别之处 关于程序员创业,我之所以愿意谈我的观点,是因为我是程序员出身,也是从小公司做起来的,我自认为对待很多程序员个人包括共享软件作者和一些小网站还是很好的.我希望分享一些经验和体会. 首先,我想说的是聪明人不一定能成功,很多程序员很聪明,但我一看就知道他们不会成功. 因为我看到了一些问题,

合格程序员七大基本素质与五大必备能力

程序员基本素质: 作一个真正合格的程序员,或者说就是可以真正合格完成一些代码工作的程序员,应该具有的素质. 1:团队精神和协作能力 把它作为基本素质,并不是不重要,恰恰相反,这是程序员应该具备的最基本的,也是最重要的安身立命之本.把高水平程序员说成独行侠的都是在呓语,任何个人的力量都是有限的,即便如linus这样的天才,也需要通过组成强大的团队来创造奇迹,那些遍布全球的为linux写核心的高手们,没有协作精神是不可想象的.独行侠可以作一些赚钱的小软件发点小财,但是一旦进入一些大系统的研发团队,进