Clean Code 無瑕的程式碼 第12章 羽化

        第十二章的內容是簡單設計四守則,作者講述寫程式的內功心法。


簡單設計四守則


執行完所有的測試


沒有重複的部分


表達程式設計師的本意


最小類別和方法的數量


 


簡單設計守則1:執行完所有的測試


科學的特性是「可證偽」,因此能夠測試的程式才是可靠的程式。


為了能夠測試程式會走向小型、單一用途的類別,遵守單一職責原則(SRP)。


為了降低程式之間都耦合,會使用相依性反向(DIP)、相依性注入、介面與抽象類。


簡單設計守則2~4:程式重構


有測試程式就不怕程式重構的時候程式會被改壞。


程式重構的目的


增加凝聚性


降低耦合度


分離關注點


模組化系統關注點


函數與類別瘦身


選擇良好的名稱


禁止重複


將相同的程式碼寫成一個函數。


在小處重複使用,才能實現大處重複使用。


 


書中舉出一個化繁為簡的範例。類別之中的函數有相同的部分,重構的時候可以用方法提取新建一個函數,然而這樣做又會違反單一職責原則(SRP)。


作者建議用設計模式樣板方法(TEMPLATE METHOD)解決這個問題。


這篇文章作者有提供一個簡單範例


樣板方法模式(Template Method Pattern)


原有的「提取方法」會違反單一職責原則(SRP),樣板方法(TEMPLATE METHOD)用「提取類別」的方式,子類別提供不重複的資訊。


具表達力


內容主要在說可讀性,可用以下方式增加程式可讀性


選擇一個良好的名稱


讓函數類別簡短


可用設計模式做為類別名稱增加可讀性


最小化類別及方法的數量


微型化的結果會造成太多的類別,作者提醒「最小化類別及方法的數量」簡單設計四原則優先權比較後面,不可以變成教條主義。


總結


本章內容是作者們數十年經驗的結晶。讀者看懂本章內容可快速習得良好的守則和設計模式。


 



留言

這個網誌中的熱門文章

異世界NTR web版第三章 觀後感 喧賓奪主 ,反派實力過強

持有縮小技能的D級冒險者,與聖女結婚並加入勇者團隊 漫畫 01-04 觀後感 大我與小我

泛而不精的我被逐出了勇者隊伍 web第三章 觀後感 菲莉真能打; 露娜超爽der