泓泰

程序员修复bug的吐血过程,太形象了_程序员bug段子

admin

本文目录一览

为什么程序会有bug

所谓“(Bug)”,是指电脑系统的【de】硬件、系统软件【jiàn】(如操【cāo】作系统)或【huò】应【yīng】用软件(如文字处理软【ruǎn】件)出错。硬件的【de】出错有【yǒu】两个【gè】原因,一【yī】是设计错误,一是硬件部【bù】件老【lǎo】化失效【xiào】等。软件的错误全是【shì】厂家【jiā】设计错误。那种说用户执行了非法【fǎ】操【cāo】作的提示,是软件厂【chǎng】商不负责的【de】胡【hú】说八道【dào】。用户可【kě】能会执行不正确的操【cāo】作,比如本来是做加法但按了减法【fǎ】键。这样用户会得到一个不正确【què】的结果,但不会引起bug发作。软件厂商【shāng】在设【shè】计产品时【shí】的一【yī】个基本要求,就是不允许用户【hù】做非法的操作。只【zhī】要允【yǔn】许用户做【zuò】的,都是合【hé】法的。用户根本就没有办【bàn】法知道【dào】厂家心里【lǐ】是怎【zěn】么想的【de】,哪【nǎ】些操作序列是【shì】非法【fǎ】的【de】。
从【cóng】电脑诞生【shēng】之【zhī】日【rì】起,就【jiù】有了电脑BUG。第一【yī】个有记载的bug是美国海军的【de】编程员,编译【yì】器的发明者格蕾斯·哈珀【pò】(Grace Hopper)发现的【de】。哈珀后来成了【le】美国海【hǎi】军的一个将军【jun1】,领导了著名计算机【jī】语言Cobol的开发。
9-21,下午三点【diǎn】。哈珀中【zhōng】尉正【zhèng】领【lǐng】着【zhe】她的【de】小组构造一个【gè】称为【wéi】“马克二型”的计【jì】算【suàn】机。这还不是一个完全的电子计算机,它【tā】使用了大量的继电器,一种电【diàn】子机械装置。第二次世界大战还【hái】没有【yǒu】结束。哈【hā】珀的小组【zǔ】日以【yǐ】继夜地工【gōng】作。机房是一间第一次【cì】世界【jiè】大战时建造的【de】老建筑。那是一个炎【yán】热的夏天,房间没有空调,所有窗户都敞开散热。
突【tū】然,马克二型死机【jī】了。技术人【rén】员试【shì】了【le】很多办法,最后定位【wèi】到第70号继电器出错。哈珀观察这个出错的继【jì】电【diàn】器,发现一【yī】只飞蛾躺在【zài】中间,已经被继【jì】电器打死。她【tā】小心地用摄子将蛾【é】子夹出来,用【yòng】透明【míng】胶布帖到【dào】“事件【jiàn】记录【lù】本”中,并注明“第一个【gè】发现虫子的实例【lì】。”
从此以后,人们将【jiāng】计算【suàn】机错误【wù】戏称为虫子(bug),而【ér】把找寻错误的【de】工作称为(debug)。

bug是什么【me】意思,世界【jiè】上第一个bug是【shì】什么,bug为什【shí】么不能彻底消除【chú】?

程序员修复bug的吐血过程,太形象了_程序员bug段子-第1张-游戏相关-泓泰

在今天的【de】生活中,我们享受着科【kē】技和网络带来的便利【lì】,但是随【suí】着碎片化时间的【de】增加,我们沉浸在网络中的时【shí】间越【yuè】来越多【duō】,久而久之就形成【chéng】了很多网络热词,bug就是其中之一。那么bug是【shì】什么意思【sī】呢?原指【zhǐ】计算机系统或【huò】软件中的错误,现在也可以【yǐ】形容某【mǒu】些人。


bug是什么意思?



bug最早出现在计算机【jī】中,这是计算机网【wǎng】络中的一个技术术语。最【zuì】初【chū】,他们所指的“bug”是指计算机【jī】网络、系【xì】统和软件出现错【cuò】误,影响【xiǎng】正常运行【háng】。有些黑客【kè】还可以通过【guò】bug攻击网络,这是不可【kě】避免的【de】,所以bug成为【wéi】了很多【duō】程序【xù】员头疼的问题【tí】。


bug也【yě】可【kě】以用来形容人和那些天才。我们和【hé】这【zhè】种天才【cái】的【de】差距太大了【le】,所以是一种bug,一【yī】种褒【bāo】义词,指的【de】是那些【xiē】能力非凡,或者行为滴水不漏,让【ràng】我们害【hài】怕的家伙。


世界上第一只bug



本来世界上的bug指的是昆【kūn】虫,但【dàn】是【shì】世界上第一个【gè】电【diàn】脑上的bug出现在【zài】9-21。那时【shí】候电脑还没有显示器,用发光【guāng】的真空管【guǎn】工作。然而,在【zài】另一个实【shí】验中,没有办法【fǎ】运行计算机。经【jīng】过大家的研究,发【fā】现一直有昆【kūn】虫进入发光管【guǎn】,影响了【le】正常工【gōng】作。查错【cuò】人,把虫子贴在纸上,写下虫子这个【gè】词【cí】。

为什么不能彻底消除bug?



虽【suī】然计算【suàn】机语言到现在已经逐渐完善,但是对应的表述有些模【mó】糊,不能【néng】很好的区分它的边缘【yuán】类。但是【shì】,最重【chóng】要【yào】的原因是程序员【yuán】不能【néng】很好的【de】区分和协调代码在块【kuài】之间的操【cāo】作【zuò】。总有一些不好【hǎo】的东西用巨大的代码写出来,有时候一个不小【xiǎo】心就可能【néng】造【zào】成【chéng】重【chóng】大错误。而且有【yǒu】时候你运行的软【ruǎn】件可能有【yǒu】bug支持。恒【héng】业有【yǒu】句老话,就【jiù】是“只管跑”。一个意【yì】思是这个代码能【néng】不能运行无所谓,有没有bug也无【wú】所谓。一种【zhǒng】解释是【shì】可以泡着不被抓。

以【yǐ】上是【shì】对bug是什么意思的【de】解释,bug指的是计算机中出现【xiàn】的错误,或【huò】者那些非凡的【de】天才。

程序员修复bug的吐血过程,太形象了

当别人【rén】向【xiàng】程序【xù】员报【bào】一个bug,直到【dào】程序员把【bǎ】bug完整的修复好,整个过【guò】程是一个怎样的经历?

下面用一个【gè】维【wéi】修工的故事类【lèi】比一下,相信会很【hěn】多程序员都会感【gǎn】到似曾相似!

假如你是一个电灯维修工程师。

一天晚上,有人想你反馈了一个bug:“18楼会议【yì】室【shì】的灯【dēng】亮着【zhe】,你要去把它熄【xī】灭”。bug的备注里还写到:这个bug很简单,你只需要按一下【xià】开关就可以【yǐ】关掉【diào】了,你应【yīng】该在5分【fèn】钟内【nèi】修复这个bug。

你上到【dào】了18楼【lóu】的会议室,灯的确是亮【liàng】着,但是房【fáng】间里没有这【zhè】盏灯【dēng】的开关。

怎么办【bàn】?这时候你打算安装【zhuāng】一个开关,然后【hòu】通过【guò】开关把灯关掉,完【wán】美!

这【zhè】个【gè】时候【hòu】设计【jì】师【shī】会【huì】跟你说【shuō】,它会破坏房间的美感。另外,墙壁是混凝土做【zuò】的,你得有合适的工具和其他【tā】人的配合才能安【ān】装。但此【cǐ】时此刻,你找不到这些【xiē】工具和人员来帮【bāng】你【nǐ】。

如果没有【yǒu】这些【xiē】辅助工具,安装开【kāi】关,保【bǎo】守估计要【yào】2天【tiān】时间。但是他们【men】希望【wàng】你只花【huā】5分钟【zhōng】就把灯关掉,因为他们【men】害怕CEO哪天会经过18楼会议【yì】室,问为什么灯【dēng】是亮着的,怕被问【wèn】责。

5分【fèn】钟过去了,你的手机响个不停,他们反复问你为什【shí】么灯【dēng】还亮着,为什么按【àn】一【yī】下开【kāi】关就能关【guān】掉这么【me】简单的事你要弄这【zhè】么久?

为了尽【jìn】快解决问【wèn】题,你实【shí】在没办法,所【suǒ】以,你设法进到了 18 楼走廊【láng】的天花板里,找到了会议室灯的电【diàn】线【xiàn】,一【yī】刀切断,灯【dēng】关掉了,问题解决了,你告诉了他【tā】们:你把先切掉了【le】,灯【dēng】就【jiù】关了。

你的手机也安静了,但好景不长。

他们又有了【le】新的【de】疑问【wèn】:线【xiàn】被你切掉了,如果哪天【tiān】我们【men】想开启会议室【shì】的灯【dēng】,怎么办?因此【cǐ】,他【tā】们要求你把这盏灯的线牵引【yǐn】到地【dì】下室去,因为那里有开关,等他【tā】们需要开灯的时候,就通知【zhī】你去地下室帮【bāng】他们开灯。

你抗【kàng】议这个荒谬的解决方案。但是你【nǐ】的上司说【shuō】:“是的,这【zhè】个解【jiě】决【jué】办法不理想,但【dàn】是现在是唯一的解决方案”。

这个时候你心里骂了他们一句:SB!

现【xiàn】在你要【yào】么按照【zhào】他们的“荒谬”要求来做,要么辞职【zhí】另谋高就,但你【nǐ】想了想,一旦到【dào】了新的【de】工作环境【jìng】,也难免会遇【yù】到这种荒谬的事情【qíng】。

你咬【yǎo】咬牙,把18楼会议室的线牵引到了地下室,你发现已经有10几条线是【shì】从其他【tā】地【dì】方牵【qiān】引过来的,这【zhè】种荒【huāng】谬的做【zuò】法,你不是第【dì】一个做。你小心翼翼地把【bǎ】线牵引【yǐn】号,并尽人事【shì】地给左右地【dì】线做好【hǎo】了标【biāo】记。

终于,你回到了你的办公桌,把bug标记成:“已修复”。

可刚过不久,测试员又【yòu】重新开启了bug,并备【bèi】注【zhù】说:“会议室还是亮【liàng】着【zhe】的”。

你回到 18 楼的会议【yì】室。灯是灭着的。你返【fǎn】回办公桌前,关闭了 bug,注明你【nǐ】已经亲自检【jiǎn】查过了【le】。

测试员再次重新开启了 bug:“房间还亮着”。再次亲眼确认灯泡灭着【zhe】后【hòu】,你【nǐ】将情况汇【huì】报【bào】给了上司【sī】。

他【tā】建议你去地【dì】下【xià】室【shì】检查电线和【hé】开关【guān】。你抗议说你正直盯【dīng】盯地【dì】看着灯,它就【jiù】是灭着的【de】。 “我知道【dào】,但去检查一下。这样一来你【nǐ】就可以告诉测试【shì】员你确认了所有流【liú】程。”

你叹了口气,前往地下室检查了电线和开关【guān】。它们不可能以任【rèn】何【hé】你能理解的方【fāng】式导【dǎo】电。 你向测试【shì】员【yuán】反【fǎn】馈,你检查了电线和开关,它【tā】们不可能【néng】通电,你正【zhèng】看着灯泡,它是熄【xī】灭的。

“我不【bú】是指灯泡【pào】,”测试员说。 “bug 里描述的是房【fáng】间里的光。房间现在仍然不够暗,你应该拉下【xià】窗帘【lián】。“你回应说窗帘的事【shì】不归你管。测试员不相信你说的话【huà】,亲自去询问你【nǐ】的【de】领导【dǎo】。

经过一番【fān】激烈的讨【tǎo】论之后,他【tā】们终于同意将窗帘的【de】问题【tí】提交给【gěi】其他部分去解决,太好【hǎo】了,灯光的问【wèn】题暂时到【dào】此为止了,bug可以顺利地关闭掉了。

现在,CEO突然【rán】决定要去18楼会议室【shì】开会。你接到【dào】通知,要赶去地下室,开启18楼会【huì】议室的灯【dēng】。

你以【yǐ】最【zuì】快的速【sù】度去到了地下室,连上电线,按下开启按钮【niǔ】。回到了办公桌,此【cǐ】时你【nǐ】的手机有了26个【gè】未读消【xiāo】息:

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

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

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

......

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

各位程序员都有过哪些令人哭笑不得的改bug经历?

之前有【yǒu】一次项目要上线,然后【hòu】因为【wéi】一个bug,导【dǎo】致所有的【de】人都【dōu】在通宵加班,从【cóng】初级程序员到技术经理都在找【zhǎo】这个【gè】bug。一【yī】开【kāi】始就错【cuò】了,所有人都把这个问题想的太复杂化了,然后就白白【bái】白的浪费了4个小【xiǎo】时。原【yuán】来是很多程序员【yuán】经常犯的错误,就是【shì】代码不【bú】严谨导致的,缺少一个逗号【hào】,当时开发工具还没【méi】有这么发达【dá】,没有【yǒu】自动检【jiǎn】测的功能。

程序员为什么要一直改bug,不能一次性写好吗?

软件【jiàn】可【kě】能在使用过程中没有任何问题,但【dàn】不符合产品的预期下图源自“How projects really work?”,很形象的突出【chū】了【le】客【kè】户需要的产品和【hé】最终得到的产【chǎn】品不【bú】一致【zhì】。


因【yīn】为文【wén】字具有【yǒu】二义性,每个人对相同文本会不同的【de】理解,客户、项目【mù】经【jīng】理、分析师、程【chéng】序员对需求理解的不一致,导致了产品【pǐn】上线【xiàn】运行后不符合预期【qī】。这算【suàn】是【shì】一个最大【dà】的Bug,有经验【yàn】的开发公司【sī】会从【cóng】沟通流程【chéng】上尽量规避这种可能【néng】性,但也没有【yǒu】办法完全避免【miǎn】。


另外在软【ruǎn】件开发途【tú】中也【yě】会出现各【gè】种各样【yàng】的Bug。这种情【qíng】况有点像装【zhuāng】修【xiū】房子,设计公司根据客户房【fáng】子的尺寸和结【jié】构、朝【cháo】向、生活习惯等等设计工程【chéng】图和效果图。客【kè】户看到设计工程图【tú】和效果图后感觉【jiào】很满意【yì】,马上水电工、木工、瓦工、油漆工【gōng】等陆续【xù】进场按【àn】照设计工程图和【hé】效果图施工。施工完后看【kàn】起来所有【yǒu】都很正常,验收的过程中就【jiù】会【huì】暴露很多问题【tí】,比如少【shǎo】了【le】一个插座、油漆【qī】涂抹不均匀、有的瓷砖【zhuān】没有贴【tiē】好【hǎo】等。


当客户真正入【rù】住的时候,可能还会发现【xiàn】各种当初对设计不满意的地方【fāng】,一旦真正使用的【de】时【shí】候【hòu】,就【jiù】会发现当初应该这么【me】设计。客户在使用【yòng】软件的时候,并【bìng】不【bú】会按照操【cāo】作流程使用这种【zhǒng】情【qíng】况就好比使【shǐ】用“高压锅”,使用说明上明【míng】明指【zhǐ】出先得放【fàng】气,才能【néng】掀【xiān】开锅盖。使【shǐ】用【yòng】的人非得【dé】先【xiān】掀开锅【guō】盖,意外便发【fā】生了。软件是按照开【kāi】发流程一步一步设计的,软件崩溃了,程序员对外行解释软件【jiàn】中出现的Bug是不现实【shí】的,只有【yǒu】老老实实地去设置阻断或者更改程【chéng】序的流【liú】程。


另外软【ruǎn】件使用过程还会出现一些黑天鹅事件,比如网线断了、服务器故障、机房网【wǎng】络拥堵等等。这种情【qíng】况除【chú】了在软件的架构上【shàng】做冗【rǒng】余【yú】,没有其他【tā】更好的办法【fǎ】。用【yòng】户【hù】能正常【cháng】使用【yòng】,但在【zài】用户【hù】看【kàn】不到的地方【fāng】有各种异常一【yī】个软件有许多的【de】功能模块,并【bìng】且这些模块并不【bú】是【shì】同一【yī】个人设计的。一个功能模块几乎【hū】不可能独立运行【háng】,必然【rán】牵【qiān】扯到其他【tā】模块。对于一个【gè】程序员设计的【de】其【qí】中一个模块所依赖的其他模【mó】块没有办法保证是100%可用的。


这时虽然有错误,不影响主要【yào】的流程,也不影响【xiǎng】用户的正【zhèng】常【cháng】使用,用户【hù】也不【bú】会察觉到,甚至软件【jiàn】开发人员也没有【yǒu】察觉到【dào】。但指【zhǐ】不定用户使用【yòng】软【ruǎn】件实【shí】现某个功能的时【shí】候,软件就会抛【pāo】出错误或者崩溃。


所【suǒ】以软【ruǎn】件想要变得【dé】成【chéng】熟,Bug收集和处理【lǐ】机制【zhì】是非常【cháng】有【yǒu】必要的,比【bǐ】如:会影响客户使用的优先【xiān】级高的【de】Bug要优先【xiān】修复。Bug是软件的影【yǐng】子,也是程【chéng】序员的噩梦实际【jì】上不能存【cún】在没有bug的软件,Bug和软件如影随形。就像我【wǒ】们使用的Windows,穷尽无数优秀的软件工程师【shī】来设计给用【yòng】户优【yōu】秀的桌面体验,但也有各种层出不穷的【de】bug。

程序员对Bug有多爱就有【yǒu】多恨,Bug无处不【bú】在,即使【shǐ】再牛逼的程【chéng】序员【yuán】也【yě】逃脱不了【le】Bug的魔掌【zhǎng】。想要完【wán】全避免【miǎn】Bug几乎是不可能的,所【suǒ】以也【yě】不在【zài】一次性就写好的程序。以上【shàng】个人浅见【jiàn】,欢迎【yíng】批评指正【zhèng】。认同我的看【kàn】法,请点个赞再走,感谢!喜欢我的,请关注我,再次感【gǎn】谢!

你知道bug是什么意思吗?你能详细讲一下吗?

Bug一词相信【xìn】很多朋友都【dōu】在网上看过,尤【yóu】其是编程人【rén】员更是经常要与Bug一词打交道。但经常【cháng】有【yǒu】部分网友却不【bú】知道【dào】Bug什么意思,虽然Bug只有三个字母,但其涉【shè】及【jí】到的【de】领【lǐng】域相【xiàng】当多【duō】,包含电脑各类软件、游【yóu】戏等方面【miàn】都会涉及到。

现如今的网络发展是十分迅【xùn】速的,几乎每【měi】隔一段【duàn】时间都【dōu】会活【huó】出不同的名词,就比【bǐ】如我【wǒ】们常【cháng】说的bug,一般学过计算【suàn】机编程的人最长遇到【dào】的就是bug,只【zhī】要遇【yù】到bug无不猪耳挠腮【sāi】,那【nà】么bug是什么【me】意思?来【lái】看看具体的解释【shì】。

程序运行漏洞

bug可以【yǐ】用做名词和动词,名词的汉语翻译是臭虫,小虫;故障;窃听器,而动词的翻【fān】译是装窃听器;装置窃【qiè】听器,烦【fán】恼,那么作为网【wǎng】上大火的名词,bug是什么意思?一般指的是程序运行的漏洞,导【dǎo】致程【chéng】序【xù】运【yùn】行【háng】不了【le】,多【duō】出现于程序员【yuán】口中【zhōng】。

游戏bug是什么意思梗

日常我们【men】玩游戏的时候总会遇到卡【kǎ】顿、或者登陆失败等【děng】各种问题,而导致这些【xiē】问题的原因就是bug,那么【me】游戏【xì】bug是什么意【yì】思梗?游【yóu】戏中【zhōng】bug一般【bān】指的是在游戏中存在系统的漏洞【dòng】,很【hěn】多游戏【xì】玩家在知道后都会在游戏bug的时【shí】候【hòu】卡进去,做一些破【pò】坏游戏平【píng】衡的行为【wéi】。

第三方插件卡bug违法

一款【kuǎn】游戏【xì】虽然拥有着充足的人来进行维护,但是总会出现个别的bug不【bú】能【néng】顾及,很多【duō】玩家都【dōu】会利用bug来【lái】卡装备【bèi】和金币,那【nà】么卡bug违法吗?如果在合理的规【guī】则内,而且没有检【jiǎn】测到第【dì】三方插件是不【bú】构成【chéng】违法的。

bug是一【yī】个网络很多【duō】的名词,那么【me】bug是什么意【yì】思?一【yī】般指的是程序【xù】运行的漏【lòu】洞,导致程序运行不了。

标签: #程序员修复bug的吐血过程太形象了_程序员bug段子