代碼整潔之道 書(shū)籍 ,總結(jié)
《代碼整潔之道》是由Robert C. Martin(Bob大叔)所著的一本軟件工程書(shū)籍。本書(shū)涉及到代碼設(shè)計(jì)、代碼風(fēng)格、代碼復(fù)雜度、測(cè)試等多個(gè)領(lǐng)域,旨在通過(guò)一系列規(guī)則和實(shí)踐,讓程序員寫(xiě)出更可讀、可維護(hù)、可重構(gòu)、易于測(cè)試的高質(zhì)量代碼。
本書(shū)的核心思想是通過(guò)一些基本規(guī)則和原則,來(lái)提高代碼的質(zhì)量和可讀性,從而降低軟件維護(hù)成本和風(fēng)險(xiǎn)。以下將從代碼設(shè)計(jì)、代碼風(fēng)格、代碼復(fù)雜度、測(cè)試等幾個(gè)方面對(duì)本書(shū)內(nèi)容進(jìn)行總結(jié)。
一、代碼設(shè)計(jì)
1. SOLID原則
SOLID原則是代碼設(shè)計(jì)中最重要的原則之一,該原則包括單一職責(zé)原則、開(kāi)閉原則、里氏替換原則、依賴倒置原則和接口隔離原則。
單一職責(zé)原則:每個(gè)類應(yīng)該只負(fù)責(zé)單一的功能,并且修改這個(gè)類的原因只有一個(gè)。
開(kāi)閉原則:軟件實(shí)體應(yīng)該是可擴(kuò)展的,但是不可修改的。這個(gè)原則是指一個(gè)軟件實(shí)體(如類、模塊、函數(shù)等)是可以擴(kuò)展的,但是對(duì)于擴(kuò)展是關(guān)閉的,也就是說(shuō)對(duì)其進(jìn)行修改是不允許的。
里氏替換原則:一個(gè)軟件實(shí)體如果使用了一個(gè)父類的話,那么繼承自父類的子類一定能夠替換父類并且不會(huì)引起任何不良的變化。
依賴倒置原則:高層模塊不應(yīng)該依賴于底層模塊,應(yīng)該依賴于抽象接口,底層模塊同樣也依賴于抽象接口而不依賴于具體的高層模塊。
接口隔離原則:一個(gè)類不應(yīng)該依賴于它不需要的接口。
這些原則被認(rèn)為是設(shè)計(jì)模式的基礎(chǔ),并且在軟件設(shè)計(jì)中被廣泛應(yīng)用。遵循這些原則可以大大提高代碼的可維護(hù)性和擴(kuò)展性,同時(shí)也能減少代碼出現(xiàn)問(wèn)題的概率。
2. DRY原則
DRY(Don't Repeat Yourself)是一種被廣泛認(rèn)可的軟件開(kāi)發(fā)原則,該原則強(qiáng)調(diào)程序中不要出現(xiàn)重復(fù)的代碼,需要將重復(fù)代碼抽象為可重用的組件。當(dāng)代碼變得復(fù)雜、難以維護(hù)時(shí),DRY原則可以有效地解決這些問(wèn)題。
3. YAGNI原則
YAGNI(You Aren"t Gonna Need It)原則是極限編程(XP)中常用的一種原則,意思是“你不需要它”。這意味著在編寫(xiě)代碼時(shí),應(yīng)該盡可能地保持簡(jiǎn)單和精簡(jiǎn),即寫(xiě)必要的代碼,不要寫(xiě)不需要的代碼,不要為了可能發(fā)生的需求編寫(xiě)代碼。遵循YAGNI原則可以避免過(guò)度設(shè)計(jì),使代碼更加簡(jiǎn)單和易于維護(hù)。
二、代碼風(fēng)格
1. 命名規(guī)范
良好的命名規(guī)范是代碼可讀性的關(guān)鍵。在命名變量、函數(shù)、文件名、類名等時(shí),需要使用清晰、簡(jiǎn)潔、具有描述性的名稱,可以通過(guò)名稱來(lái)表達(dá)內(nèi)容和意圖。在命名時(shí)需要時(shí)刻遵循一些基本規(guī)則,如使用駝峰命名法、避免縮寫(xiě)、避免使用數(shù)字代替字母等。
2. 代碼格式
代碼格式是指代碼在空格、換行、縮進(jìn)等方面的展現(xiàn)形式。為了使代碼具有一致性和可讀性,需要遵循一些通用的代碼格式規(guī)范。比如,在語(yǔ)句中使用括號(hào)、空格等來(lái)提高代碼可讀性,在使用變量或方法時(shí),將相關(guān)的變量或方法組成一個(gè)代碼塊并縮進(jìn)。
3. 注釋規(guī)范
注釋是代碼中較為重要的一個(gè)方面。適當(dāng)?shù)淖⑨層兄诶斫獯a的含義和作用。但是,僅僅添加注釋并不能解決可讀性問(wèn)題,缺少注釋也并不代表代碼難以理解。因此,注釋規(guī)范應(yīng)該盡量簡(jiǎn)潔、明確、精準(zhǔn)。
三、代碼復(fù)雜度
1. 代碼可讀性
代碼的可讀性是代碼復(fù)雜度的核心問(wèn)題??勺x性指的是代碼容易理解且不容易出錯(cuò)。為了提高代碼的可讀性,應(yīng)該遵循一些基本原則,如限制代碼塊的長(zhǎng)度、避免嵌套循環(huán)和嵌套判斷、限制變量、函數(shù)的作用域等。
2. 函數(shù)復(fù)雜度
函數(shù)的復(fù)雜度是指函數(shù)所包含的語(yǔ)句數(shù)量、循環(huán)次數(shù)和條件語(yǔ)句數(shù)量等因素。函數(shù)的復(fù)雜度直接影響代碼的可讀性和維護(hù)性。因此,需要采取一些措施來(lái)減少函數(shù)的復(fù)雜度,如提取函數(shù)、拆分函數(shù)、減少參數(shù)數(shù)量等。
3. 類復(fù)雜度
類復(fù)雜度是指類的大小、依賴性和耦合性等因素。類的復(fù)雜度對(duì)于整個(gè)系統(tǒng)的可擴(kuò)展性和可維護(hù)性都有很大的影響。為了提高類的可讀性和可維護(hù)性,需要將類拆分、限制類的大小、降低類的耦合度等。
四、測(cè)試
1. 測(cè)試的重要性
編寫(xiě)高質(zhì)量的測(cè)試代碼是保證軟件功能正確的關(guān)鍵之一。測(cè)試的主要目的是驗(yàn)證代碼是否符合預(yù)期的行為,并且不會(huì)出現(xiàn)運(yùn)行時(shí)錯(cuò)誤。良好的測(cè)試代碼既能夠提高代碼的可靠性,同時(shí)也為軟件的擴(kuò)展和重構(gòu)提供了重要的保障。
2. 測(cè)試策略
測(cè)試策略是指在測(cè)試時(shí)需要遵循的規(guī)則和方法。測(cè)試策略包括測(cè)試的目標(biāo)、時(shí)間、資源、用例設(shè)計(jì)和執(zhí)行,以及測(cè)試文件的維護(hù)。對(duì)于測(cè)試代碼的編寫(xiě),需要遵循一些基本的規(guī)則,如每個(gè)測(cè)試用例只測(cè)試一個(gè)特定的場(chǎng)景、避免測(cè)試數(shù)據(jù)的污染、將斷言寫(xiě)在每個(gè)測(cè)試用例的結(jié)尾等。
結(jié)論:
《代碼整潔之道》一書(shū)所講的內(nèi)容涉及到了軟件設(shè)計(jì)和編碼的眾多方面,這使得它成為了一本軟件工程方面的經(jīng)典書(shū)籍。本書(shū)主要強(qiáng)調(diào)代碼質(zhì)量、可讀性、可維護(hù)性和可重構(gòu)性等方面。按照書(shū)中所提到的原則和規(guī)范,可以使代碼變得更加簡(jiǎn)潔、易于理解和適應(yīng)變化。同時(shí),養(yǎng)成良好的編寫(xiě)習(xí)慣,有助于提高代碼設(shè)計(jì)的效率和質(zhì)量,降低軟件開(kāi)發(fā)成本和維護(hù)風(fēng)險(xiǎn)。因此,建議每一位從業(yè)者都閱讀本書(shū)并嘗試將其付諸實(shí)踐。