成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

這三個技巧,讓你的代碼可讀性提高300%

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代碼來進一步說明。這段代碼:

  • 將100至110華氏度換算成相應(yīng)攝氏度。
  • 將轉(zhuǎn)換后的值四舍五入至個位(使數(shù)據(jù)變?yōu)檎麛?shù))。
  • 將所有偶數(shù)攝氏度值輸出到控制臺(這是通過使用模數(shù)運算符”%”完成的,該操作符返回整數(shù)除法的余數(shù)。因此,11% 2 =1,12% 2 = 0)

沒有縮進的版本:

有縮進的版本:

代碼中還添加了一些空白行來進一步結(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)

小程序開發(fā)
龙游县| 潍坊市| 葵青区| 马关县| 达州市| 邵阳市| 辽宁省| 柳林县| 修文县| 神农架林区| 斗六市| 文登市| 白银市| 治县。| 怀安县| 朝阳市| 恩平市| 阳江市| 云南省| 武胜县| 宁蒗| 房山区| 婺源县| 龙游县| 夹江县| 芒康县| 渭南市| 肇庆市| 崇州市| 德化县| 榆社县| 富平县| 广东省| 大化| 高雄县| 化州市| 屯留县| 六枝特区| 广元市| 达尔| 盈江县|