Clean Code 無瑕的程式碼 第12章 羽化
第十二章的內容是簡單設計四守則,作者講述寫程式的內功心法。
簡單設計四守則
執行完所有的測試
沒有重複的部分
表達程式設計師的本意
最小類別和方法的數量
簡單設計守則1:執行完所有的測試
科學的特性是「可證偽」,因此能夠測試的程式才是可靠的程式。
為了能夠測試程式會走向小型、單一用途的類別,遵守單一職責原則(SRP)。
為了降低程式之間都耦合,會使用相依性反向(DIP)、相依性注入、介面與抽象類。
簡單設計守則2~4:程式重構
有測試程式就不怕程式重構的時候程式會被改壞。
程式重構的目的
增加凝聚性
降低耦合度
分離關注點
模組化系統關注點
函數與類別瘦身
選擇良好的名稱
禁止重複
將相同的程式碼寫成一個函數。
在小處重複使用,才能實現大處重複使用。
書中舉出一個化繁為簡的範例。類別之中的函數有相同的部分,重構的時候可以用方法提取新建一個函數,然而這樣做又會違反單一職責原則(SRP)。
作者建議用設計模式樣板方法(TEMPLATE METHOD)解決這個問題。
這篇文章作者有提供一個簡單範例
樣板方法模式(Template Method Pattern)
原有的「提取方法」會違反單一職責原則(SRP),樣板方法(TEMPLATE METHOD)用「提取類別」的方式,子類別提供不重複的資訊。
具表達力
內容主要在說可讀性,可用以下方式增加程式可讀性
選擇一個良好的名稱
讓函數類別簡短
可用設計模式做為類別名稱增加可讀性
最小化類別及方法的數量
微型化的結果會造成太多的類別,作者提醒「最小化類別及方法的數量」簡單設計四原則優先權比較後面,不可以變成教條主義。
總結
本章內容是作者們數十年經驗的結晶。讀者看懂本章內容可快速習得良好的守則和設計模式。
留言
張貼留言