編寫整潔代碼的十大心得,你 Get 了嗎?(代碼整潔之道總結(jié))

編寫了這么多代碼,這十個(gè)寫出整潔代碼的心得,你或許需要。

原文鏈

接:https://aster.cloud/2022/12/15/10-tips-for-writing-clean-code/?continueFlag=09893b9b2b388dcce38f0d0199cd963d

聲明:本文為 CSDN 翻譯,未經(jīng)允許,禁止轉(zhuǎn)載。

譯者 | 彎月 責(zé)編 | 鄭麗媛

出品 | CSDN(ID:CSDNnews)

整潔的代碼是一種編寫代碼的風(fēng)格,主要以閱讀代碼的人為中心,以這種方式編寫的代碼不僅易于閱讀,維護(hù)起來(lái)也很方便。掌握如何編寫整潔代碼是軟件開發(fā)人員的一項(xiàng)基本技能。通常,編程的基本任務(wù)是應(yīng)用程序能按預(yù)期運(yùn)行,但我們編寫的代碼不僅僅是面向計(jì)算機(jī)。

編寫整潔的代碼,是要認(rèn)識(shí)到你的受眾不僅僅是計(jì)算機(jī),還有真實(shí)的人類——牢記這一原則,我們來(lái)回顧一下保持代碼整潔的重要性,并深入探討一些技巧和心得,以幫助我們?cè)趯?shí)踐中編寫出真正整潔的代碼。

編寫整潔代碼的十大心得,你 Get 了嗎?(代碼整潔之道總結(jié))編寫整潔代碼的十大心得,你 Get 了嗎?(代碼整潔之道總結(jié))

什么是整潔的代碼?

整潔代碼指的是清晰、方便理解和維護(hù)的代碼。在編寫整潔的代碼時(shí),你需要牢記今后還有其他人會(huì)閱讀并維護(hù)這段代碼,而你需要幫助他人理解代碼的用途,這樣他們才能進(jìn)行修改。

遵循代碼整潔之道,可以幫助我們編寫高度模塊化的源代碼,并降低閱讀和測(cè)試的難度。將編程與蓋房子做類比,那么整潔代碼就是房子的地基。遵循代碼整潔之道是一項(xiàng)基本技能,在需要重構(gòu)代碼或測(cè)試代碼時(shí),我們就能享受整潔的代碼帶來(lái)的優(yōu)勢(shì)。

編寫整潔代碼的十大心得,你 Get 了嗎?(代碼整潔之道總結(jié))

代碼整潔之道三原則

為了編寫整潔的代碼,我們需要遵循以下三大核心原則:

1. 選擇正確的工具;

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

3. 盡最大努力編寫出不言自明的代碼。

編寫整潔代碼的十大心得,你 Get 了嗎?(代碼整潔之道總結(jié))

十大心得

1. 遵守命名約定

使用命名約定是一個(gè)很好的開端,命名約定不僅可以讓代碼清晰有條理,而且還能讓人立即明白代碼的作用。

遵守命名約定意味著,按照特定的規(guī)則給變量命名。遵守命名約定很麻煩,而且很多人無(wú)法就哪個(gè)規(guī)則最佳達(dá)成一致。所以,我們需要盡量保持簡(jiǎn)單,例如在變量名前加上數(shù)據(jù)類型,如下所示:

int iMyInteger = 10;float fMyFloat = 10.5f;

2. 說(shuō)明變量范圍

遵循命名約定的下一步是說(shuō)明變量的范圍。同樣,具體的方式?jīng)]有統(tǒng)一標(biāo)準(zhǔn),每個(gè)人都有自己的方式,但只要在所有代碼中保持一致,就可以清楚地看出什么地方可以使用哪些變量。

常用的一種約定如下:

// 私有變量和保護(hù)變量以下劃線開頭int _iWindowSize = 900;// 公共變量正常命名int iWindowSize = 900;/ 常量全部大寫,并以下劃線連接int I_WINDOW_SIZE = 900;

3. 說(shuō)明變量用途

這一點(diǎn)非常簡(jiǎn)單,但也最常見,且最容易被忘記。對(duì)于查看代碼的其他開發(fā)人員來(lái)說(shuō),最令人沮喪的事情就是看到一個(gè)具有誤導(dǎo)性名稱的變量,或者更糟糕的是,有些變量只用一個(gè)字母命名。

下面是一個(gè)例子:

int checkNum{if(n < max){return -1;}else{return 1;}}

4. 空白的使用

通常使用空白都有積極的作用,并且一般沒有任何壞處。有時(shí),比如 JavaScript 這樣的語(yǔ)言,源代碼本身的文件大小很重要,所以你希望文件盡可能小,但空白可能會(huì)增加幾千字節(jié)。如果條件允許,請(qǐng)?jiān)陂_發(fā)過程中保留所有空白,以確保代碼方便閱讀。然后,使用一個(gè)小工具來(lái)遍歷代碼,刪除所有空白之后再上傳。

5. 注釋可以救命,至少可以減輕痛苦

在代碼中添加注釋,功德堪比救世主,我們可以通過注釋快速了解某個(gè)復(fù)雜的函數(shù)在做什么,或理解某些操作的順序。此外,除了解釋代碼本身的用途之外,注釋還可以幫助其他人了解代碼試圖解決的問題,這可以幫助他們提出更好的解決方案。

但請(qǐng)記住,注釋過多有時(shí)會(huì)導(dǎo)致代碼混亂,從而產(chǎn)生不良影響。

6. 利用自動(dòng)化節(jié)省時(shí)間和空間

編寫涉及復(fù)雜技術(shù)的代碼并不意味著可讀性必然會(huì)降低。將復(fù)雜的代碼分開寫成多行,不僅難以閱讀,而且還會(huì)增加出錯(cuò)的概率。不過編程的偉大之處在于,你可以利用整潔、可重用和巧妙的方式表達(dá)復(fù)雜的命令。

下面是一個(gè)糟糕的、不斷重復(fù)的代碼示例:

雖然代碼本身看起來(lái)沒什么問題,而且可以正常工作,但我們并不清楚它究竟在干什么。你可以添加一些簡(jiǎn)單的注釋。

box1.x = 10;box1.y = 20;box2.x = 30;box2.y = 20;box3.x = 50;box3.y = 20;box4.x = 70;box4.y = 20;

下面是修改后的整潔的代碼:

boxArray = [box1, box2, box3, box4];for(int i = 0; i < sizeOf(boxArray); i ){boxArray[i].x = 10 i * 20;boxArray[i].y = 20;}

7. 強(qiáng)大的字母 i

當(dāng)代碼包含多個(gè)首尾相接的循環(huán)時(shí),你需要使用不同的迭代變量。至于應(yīng)該使用什么一直富有爭(zhēng)議,而且答案很主觀,當(dāng)循環(huán)一個(gè)接一個(gè)地出現(xiàn)時(shí),我們應(yīng)該在循環(huán)外聲明迭代變量,并重用它。這樣,不僅代碼方便閱讀,而且你很清楚字母“i”就是迭代變量,而且它很高效。

下面,我們來(lái)看一個(gè)例子:

//declare variable initiallyint i ;for(i = 0; i<10; i ){//loop stuff}for(i = 0; i<200; i ){//more loop stuff}

8. 將所有相似的變量組織到一起

當(dāng)項(xiàng)目不斷膨脹時(shí),類中的變量也會(huì)越來(lái)越多。首先,你應(yīng)該將所有變量的聲明都放到頂部,或者至少應(yīng)該放在一起,這樣就可以讓瀏覽代碼更容易。

其次,將所有變量的聲明放在一起,然后再按照一種更容易理解的方式排列它們通常會(huì)很有幫助。例如,按照某種方式分組。有時(shí),同一個(gè)對(duì)象可能會(huì)有多種類型,我們應(yīng)該將它們放在一起,然后將無(wú)法分類的變量放在一起。

9. 函數(shù)應(yīng)盡量簡(jiǎn)單

冗長(zhǎng)的函數(shù)定義很容易導(dǎo)致代碼混亂。我們應(yīng)該了解一下函數(shù)的實(shí)際功能。如果某個(gè)函數(shù)完成的功能超出了函數(shù)名包含的意思,就應(yīng)該將多余的這部分功能拆分出來(lái),編寫一個(gè)新的函數(shù)。

10. 保持優(yōu)雅

與函數(shù)問題類似,如果大量函數(shù)都集中在同一個(gè)地方,最好創(chuàng)建一個(gè)單獨(dú)的類來(lái)代替這些函數(shù)的功能。

代碼的整潔度是影響代碼編寫、閱讀和維護(hù)難度的關(guān)鍵因素。以上我們討論的心得不是具體規(guī)則,你應(yīng)該將在這些基礎(chǔ)之上,找到自己的風(fēng)格和方式。

重要的是,保持代碼整潔、清晰且一致。任何使用代碼的人都會(huì)感謝你付出的努力,甚至可以從你的代碼中學(xué)習(xí)到新知識(shí)。

編寫整潔代碼的十大心得,你 Get 了嗎?(代碼整潔之道總結(jié))

相關(guān)新聞

聯(lián)系我們
聯(lián)系我們
公眾號(hào)
公眾號(hào)
在線咨詢
分享本頁(yè)
返回頂部