廣州恒拓開源

7x24小時咨詢熱線

400-660-3310

當前位置 : 好學校 廣州恒拓開源 學習資訊 資訊詳情

代碼清潔很重要嗎?看看這七大理由!

2014-03-26

首先要承認,大學畢業(yè)的時候我是個糟糕的程序員。 我拿到了學位,學到了一大堆書本知識,然后,我開始做一個不太重要的項目,每天晚上花大量的時間做簡化。 起初,一切正常,但是我的代碼風格一直在添亂。復制、粘貼、蹩腳的命名,混亂的思考,而且總用長期連續(xù)運行的方法,執(zhí)行各種各樣本可以分開的任務。幾個月 之后,我意識到一個嚴峻的現(xiàn)實:這個項目要崩潰了。原本我以為一個人開發(fā),可以避免混亂。但是終不得不承認,這個項目被我弄得一團糟,沒法維護,更別說 去理解了。

盡管我的代碼通常能正常運行,但我確實在編碼時玩忽職守,因為我寫的代碼,不經(jīng)過仔細重構(gòu),沒人能看懂。那時,我是個超高效的技術(shù)債務制造者。 你一定不想那樣。

再簡單的問題,一個糟糕的程序員都能把它變復雜?!猄teve Bohlen

哇,Steve是在說我吧?我早期的項目就很好驗證了這句話。沒有良好的實現(xiàn),再簡單的邏輯都能變得晦澀難懂。早期的經(jīng)驗讓我明白,我該研究下怎么改進代碼風格了。

什么是整潔的代碼?

代碼整潔是一種以讀者為中心的開發(fā)風格,以此開發(fā)的軟件易于讀寫和維護。開發(fā)人員總以為他們的工作在應用程序能夠正常運行時就完成了。但是我們編寫代碼,并不只是為了給計算機用。

編碼是一種和另外一個人交流你希望計算機做什么的藝術(shù)。–Nonald Knuth

保持代碼整潔,首先要意識到你的讀者不只是計算機,還是活生生的人!牢記這個原則,我們來討論代碼整潔之所以重要的七個簡單理由。

1. 你是個作家

想讓媽媽覺得你很厲害?告訴她你是個作家!作家就是那些練習寫作并以此為職業(yè)的人。開發(fā)人員每天都在寫。但是作為開發(fā)人員,我們總會忘記我們寫的每一行代碼都會被人閱讀十遍以上。這些人,就是我們的同事。他們閱讀代碼,忙著修復漏洞和添加新的特性。

卓越的作家以寫敘述清晰、扣人心弦的故事著稱于世。他們使用諸如章節(jié)、標題和段落等工具,有條理組織他們的想法,并耐心的引導讀者。開發(fā)人員的工作模式也很類似,只是他們簡單的使用命名空間、類和方法這些行話來講述故事罷了。

代碼整潔的人能夠聰明使用這些工具來降低復雜度,使故事變得清晰。

2. 代碼整潔是基礎

近年來,專業(yè)的重構(gòu)、單元測試、測試驅(qū)動的開發(fā)等軟件實踐備受關(guān)注。這些實踐提升了代碼質(zhì)量和軟件的可維護性。實現(xiàn)代碼整潔的原則是一項基本技能, 它的優(yōu)勢會在進行重構(gòu)代碼或者對代碼進行單元測試時顯現(xiàn)。代碼整潔的原則使得源代碼高度模塊化并且易于閱讀和測試。如果將那些軟件實踐看作是房子的話,整 潔的代碼則是地基。

3. 證明你的技能

假設你正在參加一場技術(shù)面試。如果被問到代碼質(zhì)量,為證明你的代碼質(zhì)量,你能夠舉出專業(yè)且合理的理由嗎?

或者,你會這樣回答?

如果這就是你關(guān)于代碼整潔所能想到的,那可是個壞兆頭。如果你從未有條有理的深入思考過代碼風格的質(zhì)量問題,那么你可以改進的機會估計很多。代碼整 潔的人能夠傳授很多他們使用的具體行為、模式和技巧。但是,代碼整潔畢竟不是偶然現(xiàn)象,它要求可行的規(guī)律的專注于清晰的表達意圖。

能夠被衡量的東西,都能被管理?!?Peter Drucker

建立一個整潔代碼的詞匯表,不僅有利于面試和提升代碼質(zhì)量;而且,在代碼審查時,建立大家公認的代碼可讀性的詞匯表和框架,能夠促進冷靜的對話。

4. 讀代碼才是難事

開發(fā)人員常以能夠解決難題為傲。不過相對來講,寫代碼比較簡單,讀代碼才是件難事。這就是為什么 Eric Lippert 寫文章說閱讀代碼很難。 這也是為什么這么多的程序員寧愿重寫,也不愿做閱讀和理解已有的代碼這種苦差事。既然看代碼原本就很挑戰(zhàn),如果一些代碼你寫的時候都只能勉強理解,你會發(fā) 現(xiàn)過后你一點都看不懂。專業(yè)的程序員寫了太多的代碼,以至于只要間隔幾周,就能忘記大部分的結(jié)構(gòu)和設計,像以全新的視角看這個項目。過段時間看不懂自己的代碼確實是很尷尬的事。相信我,我經(jīng)歷過好幾次。

5. 技術(shù)債務讓人沮喪

馬虎混亂的代碼會給我們的項目埋下技術(shù)債務。仔細考慮情境時,技術(shù)債務也會是有用的,但是過度的技術(shù)債讓人沮喪,并且會導致團隊的人才流失。當簡單 的事情變得復雜時,開發(fā)人員就會開始撤退去別的地方了。他們更看重工作質(zhì)量帶來的成就感,而不是工作數(shù)量。技術(shù)債務會降低代碼重用的機會,并且處處拉低其 他代碼庫的質(zhì)量。

6. 你太懶惰

PERL語言的作者Larry Wall說過程序員的三大美德:懶、缺乏耐心、自大。是的,在合適的情境中,懶惰確實是積極因素。早些年,當我還在跌跌撞撞的寫代碼的時候,我認識到保持代碼整潔所付出的艱辛真的會得到回報。專業(yè)的開發(fā)人員努力做到正確的懶惰。這種懶惰是把更多的精力放到代碼中,以至于開始時不難寫,以后也不會難以重用。 代碼整潔不會多花費很多時間,而且一旦你掌握這些原則,你的編碼速度實際上會更快。因為精煉的、表達充分的代碼大的優(yōu)點就是易于管理。

人們處于壓力中時,容易偷工減料并且忽略佳做法。然而像Bob Martin大叔在他的《代碼整潔之道》中提醒我們的那樣:我們沒有時間不認真。長遠來看,馬虎草率所增加的出錯次數(shù)和后期的維護代價,終會拖延項目速度。歷史經(jīng)驗告訴我們,后期你基本不可能有時間再去整理你的代碼。所以為什么不在一開始就好好做呢?

7. 不要成為那個動詞

好吧,其他的原因都解釋的站得住腳,但是這個理由關(guān)鍵。大家都知道前同事的名字變成動詞來描述“臟”代碼的事:糟糕,這些代碼是Jimmy寫的?!癘h man, this code has been Jimmy’d.”

這樣的評價,簡直就是長遠就業(yè)前景的克星啊。我們都希望未來的職位上,同事能夠推薦或者錄用我們不是嗎?想要確保今后同事會推薦你,并且期待和你以及你的代碼合作,讓別人知道你的代碼整潔是好的方式。

代碼整潔的原則

以下是代碼整潔的三個核心原則:

1. 選擇正確的工具

2. 優(yōu)化信噪比

3. 盡大努力寫出能夠自解釋的代碼

Cory在PluralSight的新課程代碼整潔之道:寫代碼給人看詳細的闡述了這三個原則。如果你有興趣提升代碼質(zhì)量,建立評價和編寫整潔代碼的詞匯庫,去看看吧!

關(guān)于作者

Cory House,軟件架構(gòu)師,獨立顧問,Pluralsignht作者,INETA社區(qū)英國發(fā)展會議正式發(fā)言人。精通響應式網(wǎng)頁設計、代碼整潔之道以及臭高爾夫球技。

——摘自開源中國

收藏
分享到:

相關(guān)課程

相關(guān)資訊

廣州恒拓開源

廣州恒拓開源

認證等級

信譽良好,可安心報讀

廣州恒拓開源

已獲好學校V2信譽等級認證

信譽值

  • (60-80)基礎信譽積累,可放心報讀
  • (81-90)良好信譽積累,可持續(xù)信賴
  • (91-100)充分信譽積累,推薦報讀

與好學校簽訂讀書保障協(xié)議:

  • 100%
  • 1
  • 2546
在線咨詢
;