精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

干掉你程序中的僵尸代碼

開(kāi)發(fā) 后端 前端
隨著萬(wàn)圣節(jié)越來(lái)越流行,我感覺(jué)有必要跟大家討論一下一個(gè)在軟件開(kāi)發(fā)中非常普遍的問(wèn)題:僵尸代碼。幾乎所有我接觸過(guò)的代碼庫(kù)里都四散著很多小段的,甚至大片大片的被注釋掉的代碼。這就是僵尸代碼。

隨著萬(wàn)圣節(jié)越來(lái)越流行,我感覺(jué)有必要跟大家討論一下一個(gè)在軟件開(kāi)發(fā)中非常普遍的問(wèn)題:僵尸代碼。幾乎所有我接觸過(guò)的代碼庫(kù)里都四散著很多小段的,甚至大片大片的被注釋掉的代碼。這就是僵尸代碼。

//目前禁用這項(xiàng)功能。Jimmy在寫(xiě)這段代碼時(shí)肯定是喝醉了。

//你可能以為這里發(fā)生了恐怖的代碼兇手案…不,不,我只是把它們注釋掉了…

為什么稱它們?yōu)榻┦a?你知道,僵尸不并不是真的死的。就像恐怕電影里告訴我們的,盡管僵尸看起來(lái)是死人,但它們?nèi)杂心芰λ奶幊鰶](méi)襲擊我們。相同的道理,僵尸代碼也是處于不生不死之間…它們?cè)谒艡C(jī)搞砸我們的工作。注釋掉的代碼還活著,它們就存在我們的代碼庫(kù)中。程序員在維護(hù)和重構(gòu)代碼時(shí)會(huì)和它們?cè)庥觯ǔJ菨L動(dòng)屏幕時(shí)和它們擦肩而過(guò),或是在進(jìn)行關(guān)鍵詞搜索時(shí)和它們撞個(gè)滿懷。但這些代碼也確實(shí)是死的,因?yàn)樗鼈冊(cè)谲浖a(chǎn)品中并不執(zhí)行。因此,這些僵尸就應(yīng)該被燒掉,立刻。

僵尸代碼不死之軀

我認(rèn)為,有兩個(gè)原因?qū)е铝私┦a的肆虐:懶和害怕風(fēng)險(xiǎn)。懶程序員對(duì)代碼有收藏癖。他們?nèi)狈Υ_信的勇氣和清楚的認(rèn)識(shí)去刪除無(wú)用的代碼,于是他們就把它們隱藏在注釋里,期望有朝一日它們能復(fù)活來(lái)再次禍害人。代碼需要經(jīng)常的、有計(jì)劃的刪除,因?yàn)閮?yōu)秀的程序員都知道:代碼就是債務(wù)。越少越好。當(dāng)然,被注釋掉的代碼仍然是代碼。

爛程序員也許會(huì)爭(zhēng)辯說(shuō),他們注釋掉這些代碼是為了“萬(wàn)一”以后有人會(huì)需要它們。事實(shí)上,這好心反而是害了大家。這實(shí)際上說(shuō)的是害怕風(fēng)險(xiǎn),缺乏對(duì)版本控制系統(tǒng)作用的信任。有版本控制系統(tǒng)在,刪除的代碼永遠(yuǎn)不會(huì)真正的死掉。它們被埋到棺材里但卻活著。所以,注釋代碼的方法沒(méi)有多大實(shí)際效用。

[[103866]]

對(duì)于程序來(lái)說(shuō),注釋掉的代碼跟刪掉的代碼一樣,不起任何作用。讓代碼半死不活,以僵尸的形態(tài)存在,造成技術(shù)債務(wù),最終會(huì)讓你的團(tuán)隊(duì)受害。要果斷,刪掉它們。

僵尸代碼降低信噪比

當(dāng)寫(xiě)程序時(shí),我們一定要努力使代碼里有效信息的比率越高越好。這有助于人們理解程序,更快的閱讀代碼,防止我們因?yàn)檎`解而寫(xiě)出有問(wèn)題的代碼。僵尸代碼直接的對(duì)抗代碼的可理解性。它拖延我們閱讀和維護(hù)代碼的速度,因?yàn)樗刮覀冊(cè)谄聊簧峡吹礁俚挠行Тa。它們就是視覺(jué)噪音,干擾人們的正常閱讀。處于某些原因,有些程序員會(huì)接受這種妥協(xié)的做法,可是在現(xiàn)實(shí)中,誰(shuí)會(huì)接受這種亂糟糟的畫(huà)面。想象一下,如果紐約時(shí)報(bào)看起來(lái)像這個(gè)樣子:

紐約時(shí)報(bào)

如何閱讀這斷斷續(xù)續(xù)的文字?噪音的增加就是對(duì)可理解性的損害。對(duì)這些被注釋掉的部分,盡管它們毫不相干,甚至?xí)`導(dǎo),但你卻無(wú)法對(duì)它們視而不見(jiàn)。有人會(huì)說(shuō),這不是最終發(fā)布的產(chǎn)品,這些代碼存在于開(kāi)發(fā)過(guò)程中,拿它們跟發(fā)布的產(chǎn)品做對(duì)比,這就像拿蘋(píng)果比桔子。但是請(qǐng)記住,被寫(xiě)出的每行代碼平均都要被閱讀10次。沒(méi)錯(cuò),你的代碼的閱讀人數(shù)沒(méi)有紐約時(shí)報(bào)多,但是,你擁有的是一個(gè)最重要的忠實(shí)的閱讀群體。就是我們。 Knuth對(duì)此關(guān)切進(jìn)行了精辟的總結(jié):

“編程是一種一個(gè)人告訴另一個(gè)人他想讓計(jì)算機(jī)做什么的藝術(shù)。” Donald Knuth

而僵尸代碼讓你講話講不清楚。一個(gè)程序員需要去閱讀被注釋掉的代碼嗎?

僵尸代碼造成歧義妨礙調(diào)試

注釋掉的代碼會(huì)帶來(lái)歧義,人們會(huì)懷疑這些代碼是否該注釋掉。試想一下,你是一個(gè)來(lái)維護(hù)程序的程序員,突然看到了一片注釋掉的代碼,而程序就在這附近出了問(wèn)題。這個(gè)程序員的任務(wù)會(huì)變得更棘手。他需要閱讀和理解這些注釋掉的代碼,了解注釋它們帶來(lái)的影響。是因?yàn)闇y(cè)試而注釋這些代碼但忘了恢復(fù)嗎?也許注釋這些代碼的人可以提供幫助,但他是誰(shuí)?調(diào)查行動(dòng)開(kāi)始。多余的歧義會(huì)消耗你的時(shí)間,增加你的思考負(fù)擔(dān)——本來(lái)可以是一次輕松的調(diào)試過(guò)程。

僵尸代碼影響關(guān)鍵詞搜索

在大型程序庫(kù)中,grep/find命令將會(huì)是你鎖定某些特定的代碼片段的雷達(dá)。然而,如果程序庫(kù)里到處散布著僵尸代碼,很有可能你捕捉到的目標(biāo)都是被注釋掉的。這是干擾。浪費(fèi)時(shí)間。

僵尸代碼影響代碼重構(gòu)

反省(重構(gòu))能修復(fù)我們的靈魂。我們應(yīng)該以小孩scout的做事原則為榮,永遠(yuǎn)把代碼收拾得比你想象的要整潔。然而,當(dāng)一個(gè)類或方法包含有大量的僵尸代碼時(shí),事情就不好處理了。如果重構(gòu)這段程序,我是否還要參考注釋掉的代碼?它們近期將會(huì)被重新使用嗎?它會(huì)影響我的新版的實(shí)現(xiàn)嗎?這些問(wèn)題對(duì)于維護(hù)的程序員來(lái)說(shuō)本該不需要回答的。

此外,集成重構(gòu)工具根本不會(huì)考慮這些注釋掉的代碼。因此,當(dāng)方法,變量,類被重命名或修飾符改變時(shí),這些注釋掉的代碼就不會(huì)同步做修改。當(dāng)你再想把注釋掉的代碼復(fù)活時(shí),它們很可能根本不能編譯。

有例外嗎?

沒(méi)有。很明確。有人會(huì)說(shuō)“我現(xiàn)在注釋它們是因?yàn)槲疫^(guò)會(huì)兒就要恢復(fù)它們。”OK,假設(shè)你是個(gè)家庭婦男,你走到起居室,看到:

[[103867]]

想想你內(nèi)心的對(duì)話。這是個(gè)漂亮的房子,但這個(gè)東西又丑且怪異。我想開(kāi)燈,但怎么會(huì)有膠帶?如果我撕掉膠帶去開(kāi)燈,會(huì)發(fā)生什么事情?你很可能最終決定找貼膠帶的人。“哦,我想打開(kāi)吊扇,但它啟動(dòng)時(shí)來(lái)回?fù)u擺,掉了下來(lái),我想修理它….”當(dāng)然,這是應(yīng)該的。而在你沒(méi)修好它之前,膠帶一直貼在開(kāi)關(guān)上。我們當(dāng)然不該讓這些只修了一半的東西存在屋內(nèi)。同樣,我們也不接受這樣的代碼。

說(shuō)的更明白些,任何被注釋掉的代碼都是僵尸代碼,都應(yīng)該被刪掉。不管有多少。不管是在發(fā)布的產(chǎn)品中還是在開(kāi)發(fā)環(huán)境中。僵尸代碼有時(shí)會(huì)在生死之間搖擺。如果代碼被注釋掉,這很有可能有東西沒(méi)有完成。經(jīng)常是配置需要來(lái)回切換或邏輯分支左右搖擺。注釋代碼可能會(huì)做實(shí)驗(yàn)性的來(lái)回切換,刪除這些代碼,建一個(gè)記事貼,記錄下需要做的事情。在記事貼中記下哪次提交版本時(shí)刪除了這些代碼。或者,新建一個(gè)版本分支專門(mén)做這事,合并時(shí)刪除它們。這樣,維護(hù)工作就不會(huì)受到干擾。

心里的核對(duì)表

如果你打算要注釋一段代碼,請(qǐng)先問(wèn)問(wèn)自己:

  • 如果有可能的話,什么時(shí)候會(huì)取消注釋?
  • 是否能刪掉它,如果日后有需要,從版本控制系統(tǒng)里找回?
  • 對(duì)這些未完成的、有可能會(huì)回滾的代碼,能否用版本分支來(lái)處理?
  • 這種需要來(lái)回切換注釋的功能可否通過(guò)配置實(shí)現(xiàn)?
  • 重構(gòu)時(shí)也需要重構(gòu)這些注釋掉的代碼嗎?

讓我們開(kāi)啟***次年度萬(wàn)圣節(jié)僵尸代碼大清剿。

本文英文原文鏈接:Kill the Zombies in Your Code

譯文鏈接:http://www.aqee.net/kill-the-zombies-in-your-code/

責(zé)任編輯:林師授 來(lái)源: 外刊IT評(píng)論
相關(guān)推薦

2019-11-26 10:07:10

業(yè)務(wù)開(kāi)發(fā)邏輯

2012-11-19 17:15:21

2022-09-19 13:21:15

Linux進(jìn)程

2018-11-30 16:19:03

App啟動(dòng)SDK

2013-07-19 15:31:20

移動(dòng)應(yīng)用僵尸

2024-02-05 18:23:23

父進(jìn)程應(yīng)用程序程序

2017-12-12 09:18:38

DevOpsIT管理系統(tǒng)

2021-09-14 13:25:23

容器pod僵尸進(jìn)程

2013-08-02 10:15:12

2013-12-23 10:35:01

2021-03-14 10:43:25

僵尸網(wǎng)絡(luò)虛假信息錯(cuò)誤信息

2022-12-10 17:47:03

VSCode代碼

2019-04-25 14:25:24

Spring Bootif elseJava

2015-04-08 11:09:28

優(yōu)秀程序員深入理解你的代碼

2011-12-19 09:40:21

程序員

2010-09-09 11:15:09

僵尸網(wǎng)絡(luò)惡意軟件

2014-09-17 09:55:09

頑固漏洞遺留代碼應(yīng)用開(kāi)發(fā)

2024-04-26 11:54:10

Pygments代碼Pytho

2019-02-25 09:50:25

Linux命令行僵尸進(jìn)程

2021-10-25 12:23:06

Linux僵尸進(jìn)程
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

日韩高清三级| 欧美精品福利视频| 中文字幕66页| 国产探花视频在线观看| 91女神在线视频| 国产精品国产亚洲伊人久久| 无码黑人精品一区二区| 国产精品白浆| 欧美三级日韩在线| 欧美午夜性视频| 69久久久久| 91麻豆.com| 91偷拍精品一区二区三区| 日本高清不卡码| 欧美日韩亚洲三区| 在线中文字幕日韩| 在线免费观看a级片| 日韩五码电影| 欧美在线一区二区| 国产av天堂无码一区二区三区| 天堂中文8资源在线8| 9色porny自拍视频一区二区| 亚洲aa中文字幕| 99re热视频| 99香蕉国产精品偷在线观看 | 在线成人h网| 色婷婷**av毛片一区| 黄色在线观看av| 91综合久久爱com| 欧美精品v日韩精品v韩国精品v| 国产偷人视频免费| av成人福利| 一区二区三区色| 国产a级片免费看| 粉嫩av一区| 久久九九全国免费| 免费不卡亚洲欧美| 四虎永久在线精品免费网址| 国产精品77777| 91九色极品视频| 亚洲天堂中文在线| 免费高清成人在线| 国产精品视频99| 免费黄色一级大片| 秋霞午夜鲁丝一区二区老狼| 国产精品久久激情| 久久久久精彩视频| 日本在线不卡视频| 国产精品极品美女在线观看免费 | 日韩精品一区二区三区四区| 中文字幕免费高清在线| 香蕉久久久久久| 欧美高清视频www夜色资源网| 自拍偷拍21p| 小说区图片区亚洲| 欧美一区二区精品久久911| 日韩不卡的av| 亚洲午夜免费| 精品国产sm最大网站免费看| 日韩综合第一页| 露出调教综合另类| 亚洲人成电影网| 无码少妇精品一区二区免费动态| 国产一区二区欧美| 中文字幕一精品亚洲无线一区| 欧美一区二区三区粗大| 日韩在线高清| 美女精品视频一区| 日韩女同强女同hd| 日本不卡在线视频| 成人网址在线观看| www.97超碰| 91在线一区二区| 日韩国产美国| 国产色在线观看| 亚洲成人在线免费| 久久精品99国产| 欧美videos粗暴| 日韩视频一区二区在线观看| 艳妇乳肉豪妇荡乳xxx| 色橹橹欧美在线观看视频高清| 亚洲欧美在线一区二区| 亚洲毛片亚洲毛片亚洲毛片| 伊人色**天天综合婷婷| 97在线免费观看| 色婷婷久久综合中文久久蜜桃av| 激情都市一区二区| 岛国一区二区三区高清视频| 天堂а在线中文在线无限看推荐| 国产情人综合久久777777| 亚洲AV无码成人精品一区| 成人免费观看在线观看| 欧洲精品一区二区三区在线观看| 91欧美一区二区三区| 久久人人爽人人爽人人片av不| 一区二区三区在线播放欧美| 青青草手机在线视频| 久久综合网络一区二区| av蓝导航精品导航| 啊v在线视频| 亚洲成年人影院| 天天干天天干天天干天天干天天干| 欧美日韩黄网站| 亚洲欧美国产日韩中文字幕| 久久精品视频免费在线观看| 日韩主播视频在线| 国产私拍一区| 超碰在线无需免费| 91久久一区二区| 男人网站在线观看| 亚洲国产日韩欧美在线| 国产精品久久97| 日韩私人影院| 一区二区在线观看免费视频播放| 无码内射中文字幕岛国片| 9l视频自拍蝌蚪9l视频成人| 日韩中文字幕在线精品| 天天干天天干天天干天天| 国产乱子伦视频一区二区三区| 日本成人看片网址| 国产精品一二三产区| 欧美一级欧美一级在线播放| www..com.cn蕾丝视频在线观看免费版| 在线精品观看| 91网站在线免费观看| 成人在线观看黄色| 欧美性猛交xxxx富婆| 麻豆精品国产传媒av| 午夜国产精品视频免费体验区| 国产精品视频网站| 精品福利视频导航大全| 精品久久久久久久久久| 国产麻豆剧传媒精品国产| 我不卡影院28| 成人激情电影一区二区| 尤物网址在线观看| 欧美日韩在线电影| 99精品全国免费观看| 日韩成人精品在线观看| 欧美在线播放一区| 性欧美videohd高精| 亚洲天堂日韩电影| 波多野结衣在线观看视频| 久久亚洲精华国产精华液| 九一国产精品视频| 亚洲精品国模| 日本一区二区不卡| 国产区在线视频| 欧美性高清videossexo| 国产传媒国产传媒| 久久成人久久爱| 在线不卡视频一区二区| 亚洲日本免费电影| 久久在线免费视频| 精品国产无码AV| 亚洲一区二区三区爽爽爽爽爽| 欧美日韩一区二区区| 韩国av一区| 精选一区二区三区四区五区| 2022成人影院| 在线观看国产成人av片| 一起草av在线| 亚洲欧美另类小说视频| 亚洲精品鲁一鲁一区二区三区 | 欧美激情xxxx性bbbb| 丰满少妇高潮在线观看| 亚洲电影中文字幕在线观看| 国产极品一区二区| 乱码第一页成人| 性欧美大战久久久久久久免费观看 | 亚洲日本韩国一区| 伊人av在线播放| 99在线精品视频在线观看| 蜜桃狠狠色伊人亚洲综合网站| 日日夜夜天天综合| 久久这里只有精品99| 丰满少妇被猛烈进入| 色伊人久久综合中文字幕| 一二三四国产精品| 国产激情一区二区三区桃花岛亚洲 | 九色网友自拍视频手机在线| 欧美日韩二区三区| 国产亚洲精品码| 久久亚洲精华国产精华液| wwww.国产| 国产精品vip| 欧美重口乱码一区二区| 精品国产三区在线| 欧美重口另类videos人妖| 欧美性猛交xxx乱大交3蜜桃| 精品国产三级电影在线观看| 无码人妻精品一区二区三区蜜桃91 | 六月婷婷激情网| 偷拍精品福利视频导航| 成人久久18免费网站图片| 24小时免费看片在线观看| 在线观看中文字幕亚洲| wwwav在线播放| 91精品91久久久中77777| 欧美极品aaaaabbbbb| 久久久久久**毛片大全| 亚洲美女高潮久久久| 日韩高清不卡一区二区三区| 成人区一区二区| 久久亚洲在线| 欧美日韩精品免费观看视一区二区| 伊人久久大香伊蕉在人线观看热v| 97人人做人人爱| 9191在线播放| 国产亚洲精品久久久久久| 日本激情一区二区| 91精品免费在线观看| 久久久久久久久影院| 亚洲女与黑人做爰| 国产综合精品久久久久成人av| gogogo免费视频观看亚洲一| 在线一区二区不卡| 蜜桃一区二区三区在线| 国产1区2区在线| 亚洲免费精品| 男人添女荫道口女人有什么感觉| 久久一区二区三区喷水| 欧美在线播放一区| 综合亚洲色图| 国产精品免费区二区三区观看| 成人免费91| 国产日韩精品综合网站| 91另类视频| 国产精品91久久| 免费观看欧美大片| 2019国产精品自在线拍国产不卡| 特级毛片在线| 欧美精品中文字幕一区| 黄色一级片在线观看| 在线观看精品国产视频| 国产女人在线视频| 国产一区av在线| 嫩草在线播放| 亚洲欧美福利视频| 日本一区高清| 国产偷亚洲偷欧美偷精品| 天堂视频中文在线| 亚洲乱码国产乱码精品精天堂| 天天舔天天干天天操| 亚洲国产精品va在线观看黑人| 女人18毛片一区二区三区| 亚洲成人精品av| 天堂中文在线资源| 亚洲精品动漫100p| 日本成人一区| 亚洲视频在线视频| eeuss影院在线播放| 中日韩美女免费视频网址在线观看 | 国产精品传媒麻豆hd| 国产剧情久久久久久| 亚洲综合av一区二区三区| 国产精品久久久久久一区二区| 四虎4545www国产精品| 国产精品女主播| 香蕉久久一区| 成人三级视频在线观看一区二区| 操欧美女人视频| 久久久久久精| 欧美午夜精彩| 中国老女人av| 在线观看一区视频| 国产精品无码一本二本三本色| 日本中文在线一区| 亚洲国产综合av| 99久久精品国产麻豆演员表| 国产精品无码久久久久一区二区| 亚洲国产成人在线| 黄色a级片在线观看| 亚洲成人自拍偷拍| 日本欧美www| 日韩欧美一区电影| 三级黄视频在线观看| 中文字幕亚洲色图| 污视频在线看网站| 欧美中文字幕视频| 国产精品日韩精品在线播放| 国产伦精品一区二区三区免费视频| 日韩精品导航| 中文字幕一区二区三区5566| 亚洲视频综合| 国产免费视频传媒| 国产一区91精品张津瑜| 成年人的黄色片| 亚洲欧美自拍偷拍色图| 国产精品1000| 欧美色精品天天在线观看视频| www.超碰在线.com| 亚洲图片在区色| 久久久123| 成人精品视频99在线观看免费| 精品精品国产三级a∨在线| 神马影院我不卡午夜| 在线精品一区| 亚洲黄色av片| 久久久亚洲欧洲日产国码αv| 精品国产视频在线观看| 91福利精品视频| 韩国av永久免费| 日韩中文字幕在线精品| 亚洲精品mv| 国产v亚洲v天堂无码| 欧美激情理论| 日本三区在线观看| www.欧美色图| 激情综合五月网| 欧美美女网站色| 毛片在线免费| 91国在线精品国内播放| 亚洲福利合集| 一区二区欧美日韩| 日韩黄色在线观看| 黄色正能量网站| 亚洲国产综合人成综合网站| 艳妇乳肉豪妇荡乳av| 亚洲人成网站免费播放| av中文在线资源库| 99国内精品久久久久久久软件| 国产精品x453.com| 性猛交ⅹ×××乱大交| 久久久久国产精品厨房| 亚洲国产成人精品激情在线| 欧美一区二区精品久久911| 免费在线看黄网站| 国产精品视频资源| 国产一区二区三区网| 白嫩少妇丰满一区二区| 91视频免费播放| 青草视频在线观看免费| 日韩h在线观看| 美女在线视频免费| 国产一区二区三区av在线| 欧美日韩一区二区三区四区在线观看| 91女神在线观看| 国产精品美女久久久久久久久久久 | 黄色成人91| 国产老头和老头xxxx×| 亚洲女同一区二区| 性生活视频软件| 久久久久久亚洲精品不卡| 99久热这里只有精品视频免费观看| 波多野结衣与黑人| 丁香亚洲综合激情啪啪综合| 成人免费看片98| 亚洲国产精品系列| 超级碰碰久久| 日韩.欧美.亚洲| 蜜桃一区二区三区四区| 麻豆精品国产免费| 欧美一级专区免费大片| 丝袜美腿av在线| 国产欧美亚洲日本| 国产精品久久久亚洲一区| 麻豆精品免费视频| 欧美性大战久久| 成人av黄色| 国产一区免费视频| 免费看亚洲片| 91精品国自产在线| 91精品国产91热久久久做人人 | 娇妻高潮浓精白浆xxⅹ| 黑人巨大精品欧美一区二区一视频 | 亚洲丝袜在线视频| 亚洲福利影视| 日韩美女爱爱视频| 91免费小视频| 在线视频你懂得| 欧美激情精品在线| 亚洲宅男一区| 亚洲精品视频三区| 亚洲国产色一区| 成在在线免费视频| 91网站在线免费观看| 亚洲美女啪啪| 青青草自拍偷拍| 精品成人佐山爱一区二区| 黑人巨大精品欧美一区二区桃花岛| 亚洲看片网站| 成人福利视频在线| 伊人成人在线观看| 欧美精品第一页在线播放| 精品大片一区二区| 无套白嫩进入乌克兰美女| 欧美日韩免费一区| 国产黄大片在线观看画质优化| 国产亚洲情侣一区二区无| 日本va欧美va欧美va精品| 国产一级一级片| 中文字幕亚洲综合久久| 青青草原在线亚洲| 日韩av片免费观看| 色菇凉天天综合网| 女囚岛在线观看| 亚洲一区二区精品在线观看| eeuss鲁片一区二区三区在线观看| 亚洲图片小说视频|