最近公司做了一個需要拆分SDK的項目,所以涉及了很多拆分的內(nèi)容,加之有比較多解耦的工作,所以想聊一聊解耦與Java拆分的一些小心得。
背景
因為部分模塊中部分功能需要拆分,但是絕大部分是不需要的,還有很多依賴模塊需要基礎(chǔ)添加,所以這項工作看起來非常巨大,并沒有辦法直接拆分。SDK盡可能的小,并且需要減少相互之間的依賴。
解耦
在拆分SDK的過程中最先做的應(yīng)該就是解耦——業(yè)務(wù)功能性拆分。將業(yè)務(wù)代碼先都拆分到新項目中,這些代碼是最頂層的東西,這個時候肯定會有很多文件都會爆紅,不要擔心,添加依賴其實是下一個步驟的事情。
解耦還需要做那些事情?
接下來就需要分離業(yè)務(wù)代碼以及拆分的依賴代碼,需要新建一個依賴目錄 例如報名:com.tzduan.demo.sdk.base,可以看出相對應(yīng)的業(yè)務(wù)代碼應(yīng)該在com.tzduan.demo.sdk.business下面。這樣做是為了便于之后的維護,依賴與業(yè)務(wù)拆分,避免業(yè)務(wù)開發(fā)人員一不小心修改依賴的代碼。
拆分
在代碼文件爆紅之后,其實就是一個漫長又無聊的過程了,講爆紅的文件一個一個的添加到拆分SDK中,使他們不再爆紅。這個過程非常的無腦,但是有一個好處,就是可以保證不會將非本次業(yè)務(wù)的代碼移動出來,又避免了重新開放一份代碼的重復(fù)造輪子的過程。這期間需要注意的是,依賴文件很有可能是互相依賴的,他們其中的方法很有可能相互引用,導(dǎo)致變相包過大,所以只需要引入業(yè)務(wù)使用的方法就好,并不要將所有的文件都引入。
拆分tips
因為引入了好多的文件,也稍微有點小心得:
一開始在demo程序中不要依賴SDK module
因為不依賴SDK module的時候你的demo也是可以跑的
在添加依賴的時候先添加資源文件
因為先添加資源文件依賴后,ide可以通過sync不對資源文件報錯
在添加java文件或者Kotlin文件的時候,先添加Model文件,然后view文件,presenter文件,最后添加util部分
model比較單一,util關(guān)聯(lián)的文件過多,所以最后添加
最后拆分過程
上面都是講我這次拆分的思想,最后我想分享一下我這次拆分的過程:
