2021-02-23 分類: 網(wǎng)站建設(shè)
想要作為優(yōu)秀的程序員必須遵守一些不成文的規(guī)定。本文不是在討論算法、數(shù)據(jù)結(jié)構(gòu)、軟件架構(gòu)和程序設(shè)計,而是在討論一些更基本、更重要的東西:可讀性。
源代碼是程序員耗盡了心血和精力的作品,所以不應(yīng)當存在“快刀斬亂麻”的現(xiàn)象。忽視這些規(guī)定看似讓代碼生成速度加快,但事實上往往導(dǎo)致事倍功半。
代碼敲一次,閱讀無數(shù)次。因此,優(yōu)化代碼提高可讀性顯得尤為重要。為了幫助生成高度可讀的代碼,本文歸納總結(jié)了必須遵守的3個重要規(guī)定。遵循這些規(guī)則可以幫助使用代碼的人員維護、擴展和調(diào)整代碼。此外,可讀性高的代碼更不容易出錯。
這三個技巧最好的地方在于:可以立即實現(xiàn)。不需要訓(xùn)練時間。僅僅需要幾分鐘就能蛻變成更優(yōu)秀的程序員!
使用描述性的變量和函數(shù)名
程序代碼往往包含上千單詞。當然,也有篇幅較短的代碼。使用自解釋變量和函數(shù)名使代碼更容易閱讀、理解、維護和后續(xù)擴展。舉個例子:
在編寫這段代碼時,開發(fā)人員確切地知道要實現(xiàn)的是哪種功能。但是,其他人能理解嗎?這就要看靈感和緣分了。開發(fā)人員可以添加一條注釋來描述這段代碼的用途,但是使用描述性變量名能夠更直觀地告訴讀者相關(guān)信息,比如:
看!現(xiàn)在是不是更容易理解了。僅通過使用描述性變量名,讀者就可以立即了解該代碼能將華氏溫度(Fahrenheit)轉(zhuǎn)換為攝氏溫度(Celsius)?,F(xiàn)在定義一個函數(shù)實現(xiàn)上述代碼功能,并觀察根據(jù)函數(shù)名和參數(shù)名對可讀性的影響程度。
“簡短”版:
“細節(jié)補充”版:
很明顯:比起只用單個字母表示變量和函數(shù)名的“簡短”版,“細節(jié)補充”版需要花費更多的打字時間。
但是,理解這兩個版本的代碼又需要多長時間呢? 自解釋代碼不僅為讀者節(jié)省了許多理解代碼的時間,同時也為開發(fā)人員節(jié)省大量時間。為了更改程序細節(jié)或者編寫拓展程序,開發(fā)人員經(jīng)常需要回顧數(shù)月前編寫的代碼。然后就一臉懵的看著屏幕:“我滴個神啊,我都寫了啥?任何可以優(yōu)化閱讀性的方法都值得付出額外的打字時間。
使用適當?shù)目s進
因為Guido van Rossum 決定在他設(shè)計的Python編程語言中強制執(zhí)行縮進,所以使用Python進行編程的讀者可以跳過本節(jié)。
如果使用的是如C、C++、Java、JavaScript、PHP、C#、PHP等其他受眾良多的編程語言,那么牢記這條技巧:
按層次縮進代碼。
可以使用制表符或者空格,空格按3次或者按4次也可按照開發(fā)人員的喜好而定。只要記住縮進在編程中是必須的就OK了。接下來通過比較一些JavaScript代碼來進一步說明。這段代碼:
沒有縮進的版本:
有縮進的版本:
代碼中還添加了一些空白行來進一步結(jié)構(gòu)化代碼。這兩段代碼中哪個的可讀性更高呢?
恰當?shù)厥褂煤瘮?shù)
通過使用函數(shù)可以構(gòu)建可重復(fù)使用的代碼塊。這些還可以使代碼更結(jié)構(gòu)化、更具可讀性和可理解性。能夠避免重復(fù)的代碼是函數(shù)最重要的特性。
定義函數(shù)(或類、模塊等等,這取決于使用哪種編程語言)可以解決在代碼庫中多次出現(xiàn)相同的代碼段的冗雜狀態(tài)。下述示例就是很好的示范:
上述代碼輸出華氏度數(shù)值和相應(yīng)的攝氏度數(shù)值。很明顯,上述代碼存在重復(fù)性代碼段,這種情況下創(chuàng)建一個函數(shù)就可以更快速地完成上述功能:
更清爽對吧!代碼看起來更干凈、更簡潔。而且,它比前一個示例更具描述性。那個公式只會在定義ConvertAndPrint函數(shù)時出現(xiàn)一次。如果只是想把華氏度轉(zhuǎn)換成攝氏度但是不顯示這些數(shù)據(jù)呢?可以通過定義不同的函數(shù)來實現(xiàn):
有木有!這種方法構(gòu)建了含有自解釋代碼的構(gòu)建塊,以便在不同的程序設(shè)計段中以多種方式重復(fù)調(diào)用這些構(gòu)建塊。
到這就結(jié)束了?No!
還是有的地方代碼重復(fù)性很高啊。PrintFahrenheitAndCelsius 函數(shù)需要輸入4個值。那么只想轉(zhuǎn)換3個值的時候怎么辦呢?想轉(zhuǎn)換300個值的時候又該怎么辦呢?當然有一個更好的方法!
根據(jù)使用的編程語言不同,抽象化函數(shù)的參數(shù)數(shù)量的方法可能不太一樣。但是,大多數(shù)開發(fā)人員會通過使用容器(如矩陣或者List)解決這個問題。
最后的改變使函數(shù)更優(yōu)越:
結(jié)語
遵循一些簡單的規(guī)定(規(guī)范化指導(dǎo))能使源代碼將更容易閱讀(從而進一步理解、維護和擴展)。
同時,使用函數(shù)(或者其他編程語言的任何抽象方法)來創(chuàng)建可重復(fù)調(diào)用的構(gòu)建塊,抽象化參數(shù)使代碼限制更少、適用范圍增大。
對函數(shù)和變量恰當?shù)刂匦旅梢栽黾釉创a的可讀性。就像讀故事一樣清晰、簡單、容易理解。
使用這三個技巧,手中的代碼將宛若重獲新生,熠熠生輝。
網(wǎng)站名稱:這三個技巧,讓你的代碼可讀性提高300%
當前地址:http://jinyejixie.com/news/102471.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站排名、電子商務(wù)、服務(wù)器托管、網(wǎng)站策劃、企業(yè)網(wǎng)站制作、做網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容