編寫干凈的代碼


究竟什么是“干凈的”代碼?

在一定程度上,干凈的代碼——像漂亮一樣——就是在旁觀者眼中所留下的印象。有經驗的程序員能夠一眼看出程序的源代碼並斷定它是否是一個易讀的代碼。他們還能夠很快地提出關於這個代碼是否是高效,結構是否合理以及是否簡單明了的意見。所有的這些特征都很難定義,但是當您把代碼呈現給這些程序員時,您通常會很贊同他們對代碼是否干凈的判斷。

決定干凈代碼的因素很多。有些是普遍性的,適用於任何類型的編程語言或者您所開發軟件的問題領域。有些是干凈代碼的屬性取決於特定的編程語言。

我們為什么會編寫出一些不干凈的代碼呢?

我認為有以下幾個造成我們編寫不干凈或者冗長代碼的原因:

1、時間壓力

2、缺少訓練

3、動機

讓我們分別看看這些原因。

時間壓力

軟件項目偏離軌道。如果您采用的是一個瀑布式的過程,它們將會比您采用迭代的方法偏離得更厲害,但是無論您采取什么樣的生命周期模型,絕大多數項目都會有所偏離。使用迭代遞增的生命周期,這種偏離將會是功能性方面的,而不會在交付日期上發生。

當一個項目開始偏離軌道時,開發人員——以及整個團隊——都要采取捷徑,這是人的本性。有一個諺語:“當您的脖子即將進入鱷魚的口中,您很難記得您是處於將要陷於沼澤的狀況。”當受到時間的壓迫時,有些東西就應該放棄,我們通常會忽略那些不能直接減輕壓力的事情——我們只知道要攻擊鱷魚。我注意到,過程是這種忽略中典型的犧牲品。這個過程可能會采取特殊的行為或者產生某些工件,但是如果我們能夠忽略它就應該忽略掉。當緊迫的時間稍微緩和之后,我們應該有很好的目的和計划返回來檢查,但是我們卻很少這樣做。

當我們不得不丟掉一些東西的時候,干凈的代碼也屬於這個范疇的過程被我們丟棄。為了簡單和節約寶貴的時間,我們用“np”來代替“netPay”變量的名稱。我們不再提供有意義的注釋或者描述這些算法。最終的期限已經迫近,我們只是想着要使我們的代碼能夠運行。

為了在最終期限完成任務,我們用這樣方法來編寫代碼是目光短淺的做法,我們最終將受到懲罰。

缺乏培訓

無論您是在高中,大學還是其它途徑學習的編程,問題是您實際上並沒有學習如何編寫干凈的代碼。部分原因是由於教育機構的時間都相當緊迫。在有限的學時中也只能教授有限的知識,編碼的設計、易讀性以及其它干凈代碼的典型特性在教育過程中都被省略掉,就像一個項目在最終期限時間的壓迫下丟棄一些過程一樣。

提高我們編碼質量

因此,很多人會責備我們為什么會編寫如此多不干凈的代碼。我們應該怎樣做呢?我建議有以下三點:

1、把編寫干凈代碼作為您個人過程的一部分。

2、講授如何編寫干凈代碼。

3、重視干凈代碼。

重視干凈代碼

如果您是一位管理人員,您必須確保您的下屬能夠理解您的價值觀念。保證您的開發人員了解代碼的質量和優雅性對您是至關重要的。當最終期限迫近時,要支持團隊並為范圍管理而努力,不要僅僅為了在期限內完成工作而交付差勁的代碼(通常是武斷地作出判斷)。

尋找幾種好的方式來宣揚因為編寫優質的代碼而獎勵的行為。獎勵並不難執行。您的團隊不久就會意識到什么才是您所重視的,他們也將全力以赴並根據這些價值觀來編寫代碼。盡管有很多大的公司並不支持那些價值觀,但是從長遠來看您的團隊將會一直堅持這種觀念,因為簡潔的代碼將會長久地支持他們的工作。

 


注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
粤ICP备14056181号  © 2014-2020 ITdaan.com