关闭

程序员修复一个bug的心路历程,太形象了

时间: 2018-10-29阅读: 1727标签: bug

和你们一样,我也是一个普普通通的前端开发者,在日常工作中,大部分时间不是在写新代码,而是在改代码,或是需求被改了,或是报bug了。


当别人想我们报一个bug,直到我们把bug完整的修复好,整个过程是一个怎样的经历?


下面用一个电灯维修工的故事类比一下,相信会引起很多开发者共鸣:


假如你是一个电灯维修工程师。一天晚上,有人想你反馈了一个bug:“18楼会议室的灯亮着,你要去把它熄灭”。bug的备注里还写到:这个bug很简单,你只需要按一下开关就可以关掉了,你应该在5分钟内修复这个不管。


你上到了18楼的会议室,灯的确是亮着,但是房间里没有这盏灯的开关。


怎么办?你准备安装一个开关。这个时候设计师会跟你说,它会破坏房间的美感。另外,墙壁是混凝土做的,你得有合适的工具和其他人的配合才能安装。但此时此刻,你找不到这些工具和人员来帮你。


如果没有这些辅助工具,安装开关,保守估计要2天时间。但是他们希望你只花5分钟就把灯关掉,因为他们害怕CEO哪天会经过18楼会议室,问为什么灯是亮着的,怕被问责。


5分钟过去了,你的手机响个不停,他们反复问你为什么灯还亮着,为什么按一下开关就能关掉这么简单的事你要弄这么久。


为了尽快解决问题,你实在没办法,所以,你设法进到了 18 楼走廊的天花板里,找到了会议室灯的电线,一刀切断,灯关掉了,问题解决了,你告诉了他们你的解决办法。


你的手机也安静了,但好景不长,他们又有了新的疑问:线被你切掉了,如果哪天我们想开启会议室的灯,怎么办?因此,他们要求你把这盏灯的线牵引到地下室去,因为那里有开关,等他们需要开灯的时候,就通知你去地下室帮他们开灯。


你抗议这个荒谬的解决方案。但是你的上司说:“是的,这个解决办法不理想,但是现在是唯一的解决方案”。


这个时候你心里骂了他们一句:SB!现在你要么按照他们的“荒谬”要求来做,要么辞职另谋高就,但你想了想,一旦到了新的工作环境,也难免会遇到这种荒谬的事情。


你咬咬牙,把18楼会议室的线牵引到了地下室,你发现已经有10几条线是从其他地方牵引过来的,这种荒谬的做法,你不是第一个做。你小心翼翼地把线牵引号,并尽人事地给左右地线做好了标记。


终于,你回到了你的办公桌,把bug标记成:“已修复”。可刚过不就,测试员又重新开启了bug,并备注说:“会议室还是亮着的”。


你回到 18 楼的会议室。灯是灭着的。你返回办公桌前,关闭了 bug,注明你已经亲自检查过了。 


测试员再次重新开启了 bug:“房间还亮着”。再次亲眼确认灯泡灭着后,你将情况汇报给了上司。他建议你去地下室检查电线和开关。你抗议说你正直盯盯地看着灯,它就是灭着的。 “我知道,但去检查一下。这样一来你就可以告诉 测试员你确认了所有流程。” 


你叹了口气,前往地下室检查了电线和开关。它们不可能以任何你能理解的方式导电。 你向测试员反馈,你检查了电线和开关,它们不可能通电,你正看着灯泡,它是熄灭的。


“我不是指灯泡,”测试员说。 “bug 里描述的是房间里的光。房间现在仍然不够暗,你应该拉下窗帘。“你回应说窗帘的事不归你管。测试员不相信你说的话,亲自去询问你的领导。


经过一番激烈的讨论之后,他们终于同意将窗帘的问题提交给其他部分去解决,太好了,灯光的问题暂时到此为止了,bug可以顺利地关闭掉了。


现在,CEO突然决定要去18楼会议室开会。你接到通知,要赶去地下室,开启18楼会议室的灯。


你以最快的速度去到了地下室,连上电线,按下开启按钮。回到了办公桌,此时你的手机有了26个未读消息:


“出问题了,灯还是熄灭的!”

“有个问题,灯没有亮。”

“为什么这么久还没有亮灯?”

......

而最新的一条消息则是:“没事了,灯是亮的”。


来自:前端君 web前端教程


站长推荐

1.云服务推荐: 国内主流云服务商,各类云产品的最新活动,优惠券领取。地址:阿里云腾讯云华为云

链接: http://www.fly63.com/article/detial/1210

ios 键盘弹起bug,出现的问题,光标穿透,页面无法点击

有时候使用ios输入键盘以后,直接点击页面按钮会出现事件无效。解决方法:1、 输入框输入后点击提交按钮后,弹窗会发现光标穿透问题

解决 React 中的 input 输入框在中文输入法下的 bug

在使用 input 时,通常会对输入的内容做校验,校验的方式无非两种:允许用户输入,并且做错误提示;不允许用户输入正则或者函数匹配到的字符。

移动端常见bug

当你点击一个链接或者通过Javascript定义的可点击元素的时候,它就会出现一个半透明的灰色背景。根本原因是-webkit-tap-highlight-color,这个属性是用于设定元素在移动设备(如Adnroid、iOS)上被触发点击事件时

零bug策略,会不会本身是个bug?

如今软件开发迭代频繁,随之而来的是产品质量难以保障,用户一天天被动找到 bug 而骂开发,开发要么被拉去祭天,要么拉慢开发新功能的进度条,分出时间精力处理 bug。这已经成了软件开发行业的一大难题,有什么解决方案呢?

不能精准定位bug?可能是你没get到这几个打印日志的诀窍!

当你遇到问题的时候,只能通过debug功能来确定问题,你应该考虑打日志,良好的系统,是可以通过日志进行问题定位的。当你碰到if…else 或者 switch这样的分支时,要在分支的首行打印日志,用来确定进入了哪个分支

chrome transition闪烁BUG

前段时间写鼠标悬停元素上移效果时,当鼠标恰好放在元素边缘时,chrome出现一直上下移动的问题,其他浏览器表现正常

程序员沉迷 Bug 可以有多疯?

苍天啊!大地啊!竟然有程序员,因为沉迷代码,快要痛失女友了!那么,程序员写起代码,究竟可以有多沉(shang)迷(yin)?程序员为了写代码,可以有多疯?看了网友们的评论

程序员遇到Bug时的多种反应 你是哪一种?

开发应用程序是一个非常有压力的工作。没有人是完美的,因此在这个行业中,代码中出现bug是相当普遍的现象。面对bug,一些程序员会生气,会沮丧,会心烦意乱,甚至会灰心丧气,而另一些程序员会依然保持冷静沉着

程序员的修炼-我们为什么会编写BUG

在最近的一周,我维护的业务系统出现了很多坏毛病,一周七天crash掉了4次,每次都需要都是因为一点很小的问题,触发了蝴蝶效应,导致整个系统全盘崩溃,于是产生除了叙述本篇的想法,当然这并不是为了掩盖我在Coding上的一些细节处理和职责疏忽

Bug的处理流程

缺陷的定义:软件没有实现产品的说明书所描述的功能、软件实现了产品说明书描述不应有的功能...缺陷的等级-致命:一招毙命的缺陷,使你的系统无法运行,有造成数据泄漏的安全性问题。严重:可以引起易于纠正的异常情况、可能引起易于修复的故障或对产品外观难以接受的缺陷。

点击更多...

内容以共享、参考、研究为目的,不存在任何商业目的。其版权属原作者所有,如有侵权或违规,请与小编联系!情况属实本人将予以删除!