開發(fā)的時候可能我們會用到第三方包和使用開源代碼或者是其他團隊的開發(fā)的組件系統(tǒng)腿箩,不管是那種情況我們都得干凈整潔的整合經(jīng)自己的代碼中惠爽。
所謂邊界就是指外來代碼和自己寫的代碼之間進行整合的連接區(qū)域奥裸。
1.使用第三方代碼
第三方程序包和框架提供者追求普適性陷寝,這樣能在多個環(huán)境中工作鳞贷,吸引廣泛的用戶缤灵。而使用者則想要集中滿足特定需求的接口怎诫。這樣的情況可能會導(dǎo)致系統(tǒng)邊界出現(xiàn)問題瘾晃。
例子:
2.瀏覽和學(xué)習(xí)邊界
如果第三方代碼庫的使用方法并不清楚,我們可能會花很多時間閱讀文檔再決定如何使用幻妓。在不了解的情況下不要在生產(chǎn)代碼中試新東西蹦误,而是編寫測試來瀏覽和理解第三方代碼。Jim Newkirk把這叫做學(xué)習(xí)性測試肉津。通過學(xué)習(xí)性測試强胰,來檢測自己對API的理解程度。
3.學(xué)習(xí)log4j
編寫測試用例來學(xué)習(xí)第三方程序的API妹沙,再根據(jù)自己的需要進行封裝偶洋,將應(yīng)用程序的其他部分與log4j的邊界接口隔離開來。
4.學(xué)習(xí)行測試的好處不只是免費
學(xué)習(xí)性測試的好處不光免費初烘,還在投資上有正面回報涡真,當?shù)谌匠绦虬l(fā)布了新版本,我們可以運行學(xué)習(xí)性測試肾筐,看看程序包的行為有沒有改變哆料。
5.使用尚不存在的代碼
使用不存在的代碼時,可以先定義自己需要的接口吗铐,然后編寫類調(diào)用接口东亦。當?shù)谌匠绦蚧蛘唛_源代碼暫時還沒有提供我們所需的API時,可以暫時根據(jù)具體業(yè)務(wù),定義我們所需的API典阵,并使用奋渔。等真實的API被開發(fā)出來,再接入相應(yīng)的接口壮啊。這樣的好處是嫉鲸,有助于保持客戶代碼更可讀,且集中于它該完成的工作歹啼。
6.整潔的邊界
邊界上肯跟會發(fā)生的事有很多玄渗,改動是其中之一。有良好的軟件設(shè)計狸眼,無需巨大投入和重寫即可進行修改藤树。在使用我們控制不了的代碼時,必須加倍小心保護投資拓萌,確保未來的修改不至于代價太大岁钓。
7.總結(jié)
保持邊界整潔,可以避免我們的代碼過多依賴第三方程序的內(nèi)部實現(xiàn)細節(jié)微王,減少第三方程序?qū)ξ覀兇a的入侵程度屡限,盡可能降低因第三方程序修改而對我們代碼產(chǎn)生的影響。