# Clean Code - Ch08 邊界 在專案中常常會使用到第三方套件,但這些東西不是我們開發的而且我們也不能百分百的操控它,因此如何把第三方套件以及我們自己的代碼整合在一起就變成一門重要的課題 ## 1. 使用第三方套件時,應該要經過封裝 因為如果直接使用的話,response的model有可能是第三方的model,這時候就需要先把它轉換成我們自己實現的model才能更好的對他做操作。 ## 2. 學習式測試 (Learning Tests) 在用第三方套件時,我們需要花點時間來了解這個套件以及該如何實現功能 雖然測試第三方套件不是我們應該做的事情,但我們可以寫學習式測試來幫助你了解套件 在學習式測試裡面我們只做調用套件的方法並且直接比對response 因為我們只是需要了解它到底該怎麼用以及它到底會出現什麼問題而已 **ex. response出現null而非我們期望的泛型response** 在做完這些測試後,我們可以直接把這些測試的代碼封裝成我們跟套件界接的物件 或者是以後在升級套件時,我們也可以先透過這些測試來判斷升級所需的成本 ***學習式測試可以幫我們驗證套件是不是符合我們的預期,因為他們不是為了我們而做升級的,我們不能保證他會一直符合我們的需求,因此學習式測試還是有存在的價值的*** ## 3. 使用尚未存在的程式 假設今天第三方套件尚未開發完成,但我們已經確定好我們自己的需求時,我們可以定義自己的介面 並且直接做一個假的物件去實作該介面,等到後續套件完成時,我們就可以直接用第三方套件去實現我們自己定義的介面切換過去就好了 ## 4. 簡潔的程式邊界 避免客戶端程式過度地使用第三方套件裡的特殊之處 讓代碼只在最少處引用第三方軟體的方式,來管理第三方軟體的邊界。 ###### tags: `Clean Code` `Book`
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up