欢迎光临散文网 会员登陆 & 注册

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

2021-06-16 23:23 作者:tkchenhaha  | 我要投稿

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

使用第三方軟體的程式碼

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設計模式對應第三方軟體,保持邊界整潔。



Clean Code 無瑕的程式碼 第8章 邊界的评论 (共 条)

分享到微博请遵守国家法律