DRY原則

今天談一個編程世界非常基本的原則,它有多基本庸娱?可能在我說出這個概念前屏轰,你已經(jīng)不自覺的應(yīng)用多年。那就是DRY原則,Don’t Repeat Yourself,直譯就是不要重復(fù)你自己。

簡單來講肯污,寫代碼的時候,如果出現(xiàn)雷同片段吨枉,就要想辦法把他們提取出來蹦渣,成為一段獨立的代碼。這樣的抽象貌亭,可以保證任何調(diào)用這段代碼的程序都能得到一致的結(jié)果柬唯;同時在需要修改時也能保證所有調(diào)用處都能獲得更新。

舉個例子圃庭,新年將至锄奢,在年底你免不了要發(fā)一大堆祝福短信失晴。最簡單粗暴的方法,就是給每個人編輯一條新信息拘央,然后一字一句把祝福輸入涂屁。此處應(yīng)用DRY原則,在給第一個人編輯后灰伟,你復(fù)制整段文字拆又,給其他人發(fā)送時直接粘貼發(fā)送。如果進一步抽象栏账,你會寫一個不含對方個人特征的祝福遏乔,同時群發(fā)給許多人。簡化重復(fù)勞動发笔,是DRY最直觀的應(yīng)用。

有時候看來凉翻,這個原則很簡單了讨,是實話,更像是廢話制轰。但是即使是廢話前计,我們也需要這個原則,對于高樓大廈垃杖,越是底層男杈,越是重要。

在實際應(yīng)用中调俘,可以參考《重構(gòu)》(Refactoring)中說的三次原則(Rule of three)伶棒,即同樣的代碼將要出現(xiàn)第三次前,考慮抽象它彩库。至于什么是抽象肤无,如何抽象,怕是寫上一年也寫不完骇钦。

違背DRY原則的代碼宛渐,程序員稱之為WET(直譯:潮濕,因為DRY是干燥的意思)的眯搭,可以理解為Write Everything Twice(任何東西寫兩遍)窥翩,We Enjoying Typing(我們享受敲鍵盤)或Waste Everyone’s Time(浪費所有人的時間)。

大家感受一下來自程序員的冷幽默鳞仙。

注:DRY原則理論上來說是沒有問題的寇蚊,但在實際應(yīng)用是切忌死搬教條。它只能起指導(dǎo)作用繁扎,沒有量化標準幔荒,否則的話理論上一個程序每一行代碼都只能出現(xiàn)一次才行糊闽,這是非常荒謬的爹梁。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末右犹,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子姚垃,更是在濱河造成了極大的恐慌念链,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,907評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件积糯,死亡現(xiàn)場離奇詭異掂墓,居然都是意外死亡,警方通過查閱死者的電腦和手機看成,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,987評論 3 395
  • 文/潘曉璐 我一進店門君编,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人川慌,你說我怎么就攤上這事吃嘿。” “怎么了梦重?”我有些...
    開封第一講書人閱讀 164,298評論 0 354
  • 文/不壞的土叔 我叫張陵兑燥,是天一觀的道長。 經(jīng)常有香客問我琴拧,道長降瞳,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,586評論 1 293
  • 正文 為了忘掉前任蚓胸,我火速辦了婚禮挣饥,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘沛膳。我一直安慰自己亮靴,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,633評論 6 392
  • 文/花漫 我一把揭開白布于置。 她就那樣靜靜地躺著茧吊,像睡著了一般。 火紅的嫁衣襯著肌膚如雪八毯。 梳的紋絲不亂的頭發(fā)上搓侄,一...
    開封第一講書人閱讀 51,488評論 1 302
  • 那天,我揣著相機與錄音话速,去河邊找鬼讶踪。 笑死,一個胖子當(dāng)著我的面吹牛泊交,可吹牛的內(nèi)容都是我干的乳讥。 我是一名探鬼主播柱查,決...
    沈念sama閱讀 40,275評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼云石!你這毒婦竟也來了唉工?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,176評論 0 276
  • 序言:老撾萬榮一對情侶失蹤汹忠,失蹤者是張志新(化名)和其女友劉穎淋硝,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體宽菜,經(jīng)...
    沈念sama閱讀 45,619評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡谣膳,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,819評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了铅乡。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片继谚。...
    茶點故事閱讀 39,932評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖阵幸,靈堂內(nèi)的尸體忽然破棺而出犬庇,到底是詐尸還是另有隱情,我是刑警寧澤侨嘀,帶...
    沈念sama閱讀 35,655評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站捂襟,受9級特大地震影響咬腕,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜葬荷,卻給世界環(huán)境...
    茶點故事閱讀 41,265評論 3 329
  • 文/蒙蒙 一涨共、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧宠漩,春花似錦举反、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,871評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至雕崩,卻和暖如春魁索,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背盼铁。 一陣腳步聲響...
    開封第一講書人閱讀 32,994評論 1 269
  • 我被黑心中介騙來泰國打工粗蔚, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人饶火。 一個月前我還...
    沈念sama閱讀 48,095評論 3 370
  • 正文 我出身青樓鹏控,卻偏偏與公主長得像致扯,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子当辐,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,884評論 2 354