Clean Code 無瑕的程式碼 第8章 邊界

        第八章圖畫表現出邊界的重要性,男性角色明顯超過了邊界,作者描述如何處理第三方軟體保持系統邊界整潔。


使用第三方軟體的程式碼


clear() void - Map


Map 介面有一個 clear() 函數,若不希望每個使用者都會呼叫clear()刪除內容,可用包裹(wrap)的方法將Map介面隱藏。


public class Sensors{


    private Map sensors = new HashMap();



    public Sensor getById(String id){


        return (Sensor) sensors.get(id);


    }


}


探索及學習邊界


使用第三方API程式的時候要寫測試程式。


學習式測試比照應用程式來呼叫第三方API程式,重點在於我們想要從第三方API獲得什麼樣的結果?


學習log4j


作者舉例與log4j做戰的經驗,同樣用包裹(wrap)將應用程式其他部分與log4j隔離。


學習式測試比不花功夫更好


第三方測試改版的時候可以執行測試程式,來觀察行為上有無任何改變。


使用尚未存在的程式


程式有部分未完成依然可以繼續持續開發,作者舉出工作曾經遇到的案例。


參考圖8-2


Transmitter API 還沒有準備好,可先寫Fake Transmitter 。


Transmitter API 寫好之後,可用Transmitter Adapter + Transmitter API 取代Fake Transmitter 。


(與設計模式Adapter 有關)


簡潔的程式邊界


好的軟體設計要能夠處理邊界上的變化。


控制第三方軟體,而不是被第三方軟體控制。


用封裝或ADAPTER設計模式對應第三方軟體,保持邊界整潔。


 


留言

這個網誌中的熱門文章

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

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

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