下面用一个维修工的故事类比一下,相信会很多程序员都会感到似曾相似!
假如你是一个电灯维修工程师。
一天晚上,有人想你反馈了一个bug:“18楼会议室的灯亮着,你要去把它熄灭”。bug的备注里还写到:这个bug很简单,你只需要按一下开关就可以关掉了,你应该在5分钟内修复这个bug。
你上到了18楼的会议室,灯的确是亮着,但是房间里没有这盏灯的开关。
怎么办?这时候你打算安装一个开关,然后通过开关把灯关掉,完美!
这个时候设计师会跟你说,它会破坏房间的美感。另外,墙壁是混凝土做的,你得腔察迹有合适的工具和其他人的配合才能安装。但此时此刻,你找不到这些工具和人员来帮你。
如果没有这些辅助工具,安装开关,保守估计要2天时间。但是他们希望你只花5分钟就把灯关掉,因为他们害怕CEO哪天会经过18楼会议室,问为什么灯是亮着的,怕被问责。
5分钟过去了,你的手机响个不停,他们反复问你为什么灯还亮着,为什么按一下开关就能关掉这么简单的事你要弄这么久?
为了尽快解决问题,你实在没办法,所以,你设法进到了 18 楼走廊的天花板里,找到了会议室灯的电线,一刀切断,灯关掉了,问题解决了,你告诉了他们:你把先切掉了,灯就关了。
你的手机也安静了,但好景不长。
他们又有了新的疑问:线被你切掉了,如果哪天我们想开启会议室的灯,怎么办?因此,他们要求你把这盏灯的线牵引到地下室去,因为那里有开关,等他们需要开灯的时候,就通知你去伍并地下室帮他们开灯。
你没散抗议这个荒谬的解决方案。但是你的上司说:“是的,这个解决办法不理想,但是现在是唯一的解决方案”。
这个时候你心里骂了他们一句:SB!
现在你要么按照他们的“荒谬”要求来做,要么辞职另谋高就,但你想了想,一旦到了新的工作环境,也难免会遇到这种荒谬的事情。
你咬咬牙,把18楼会议室的线牵引到了地下室,你发现已经有10几条线是从其他地方牵引过来的,这种荒谬的做法,你不是第一个做。你小心翼翼地把线牵引号,并尽人事地给左右地线做好了标记。
终于,你回到了你的办公桌,把bug标记成:“已修复”。
可刚过不久,测试员又重新开启了bug,并备注说:“会议室还是亮着的”。
你回到 18 楼的会议室。灯是灭着的。你返回办公桌前,关闭了 bug,注明你已经亲自检查过了。
测试员再次重新开启了 bug:“房间还亮着”。再次亲眼确认灯泡灭着后,你将情况汇报给了上司。
他建议你去地下室检查电线和开关。你抗议说你正直盯盯地看着灯,它就是灭着的。 “我知道,但去检查一下。这样一来你就可以告诉测试员你确认了所有流程。”
你叹了口气,前往地下室检查了电线和开关。它们不可能以任何你能理解的方式导电。 你向测试员反馈,你检查了电线和开关,它们不可能通电,你正看着灯泡,它是熄灭的。
“我不是指灯泡,”测试员说。 “bug 里描述的是房间里的光。房间现在仍然不够暗,你应该拉下窗帘。“你回应说窗帘的事不归你管。测试员不相信你说的话,亲自去询问你的领导。
经过一番激烈的讨论之后,他们终于同意将窗帘的问题提交给其他部分去解决,太好了,灯光的问题暂时到此为止了,bug可以顺利地关闭掉了。
现在,CEO突然决定要去18楼会议室开会。你接到通知,要赶去地下室,开启18楼会议室的灯。
你以最快的速度去到了地下室,连上电线,按下开启按钮。回到了办公桌,此时你的手机有了26个未读消息:
“出问题了,灯还是熄灭的!”
“有个问题,灯没有亮。”
“为什么这么久还没有亮灯?”
......
而最新的一条消息则是:“没事了,灯是亮的,辛苦了哈”。
开发应用程序过程中一定会遇到bug,这是很正常的事。程序员会有各种反应:生气,沮丧,郁闷甚至泄气,也有一些程序员会比较淡定。怎么修复bug,解决问题,也是一项技能。下面北大青鸟http://www.kmbdqn.cn/来分享程序员在bug面前反应情况。
当氛围变得紧张的时候,这些话就会显得轻松幽默。最终,bug也会修复成功,你将会继续下一个任务。我相信许多web开发人员和程序员在编程中都会遇到困难,而事后回想起来,会觉得很好笑。
程序员在bug面前反应情况
1、我不知道该删掉还是重写
看这些曾经的代码也别想重写,逻辑性差,冗余代码多,让人难以理解。B不过,如果功能没出现问题,千万别去修改。
2、一开始架构时就该查Github
Github上面每天都会发布的一些神奇的开源项目。所有语言的程序员都会利用网络,为已存在的项目创建分支,添加项目wiki描肆粗述,或者创建自己的代码库,这些都为各种各样的项目的插件和模板提供了丰富的资源。
3、为什么这个脚本要依赖这么多库
说到一些越来越被广泛使用的计算机语言,像Java和Objective-C,库文件的数量也不断增加。明显能看出,构建一个框架需要许多基础库,一些JavaScript插件也要大量的附加文件。
4、网上一定有解决办法
遇到困难时,第一反应是上网查资料,很多程序员会在论坛上发布他们的问题,最终这些问题都会被解决并存档。Google会很神奇地选择一些跟你的问题相关的关键字,就能够轻松得到一些有帮助的信息。不过,有时一些特定的问题,相关的信息并不多。
5、有这个功能的插件吗
何必多此一举,插件是扩展任何程序或者网站用户接口的很好的资源。另外它们宏悔还为开发者提供了一些定制及独特的选项。
6、对于网站项目,好担心InternetExplorer
使用IE渲染网页遇到的各种困难裂绝镇,我就不提了,从5。5版本到IE9-IE10,对于浏览器的支持问题的争议就一直不断。Web开发员很害怕网页调试,使用IE6进行渲染更是噩梦,幸好那已成为历史。
这个大撒比写出这么个烂代码,幸亏有哥这样神一样的存在才发现,哥真是救世主。
这个程序运衫穗行很久了是不是真有bug啊,是不是你弄错了啊,可以重现么,什么?可以重现,有尼玛问题也不大,要不用户早投诉了,瞧你那惊慌失措的样子,真想吐你一脸狗屎。
这个bug隐藏的很深啊,还好哥犀利犀利,没有被领导发现,今晚加个菜。
这个程序刚上线还处于调试阶段,有bug很正常,谁的程序没bug,连 *** 作系统都有bug。
哥就是犀利,自己开发自己测试,看测试那帮撒比什么也不会干,这么明显的bug都测不出来,真是一群废物。
1、“是删除它还是修改它呢?好纠结郑尘 !”
2、网上一定有解决办法。
3、是谁动了我的代码?
4、完全不知道这些代码是神马东东。
5、哦,为什么我都没写注释呢?
6、算了,废了他,我还是从头开始吧!
程序员自身可以在程序生成的每个阶段做喊塌禅这些工作: 仔细的设计、编写代码时、单元测试(重要)、功能测试。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)