1、編寫框架涉及技術(shù)
| 組件化涉及技術(shù) | 優(yōu)點 | 缺點 | 是否選用 | 理由 |
|---|---|---|---|---|
| serviceload | 調(diào)用是接口形式,比較直觀 | 模塊間調(diào)用解耦不易 | 否 | java的serviceload并不完備,實現(xiàn)多采用反射與效率背道而馳 |
| weixinapi技術(shù) | 解決部分公用代碼動態(tài)下沉到base | 編寫.api要注意分包擺放 | 是 | 項目穩(wěn)定后,一般不會有下沉base代碼,可以將base抽象成公共庫,本作者實現(xiàn) |
| 組件單獨運行和集成發(fā)布thorAlone | 編寫組件減少他們之間的依賴 | 專用sourceSet.main.debug目錄,sourceSet項目中用法過于負(fù)責(zé)慎用 | 是 | module間代碼隔離,與殼工程隔離 |
| P工程 | 細(xì)粒度的解耦,減少module內(nèi)過度依賴 | 一般中小項目中,粒度過于細(xì)了 | 否 | 一般項目多P工程解耦成本太高 |
| asm | 動態(tài)生成字節(jié)碼效率高 | 底層技術(shù)編寫過于復(fù)雜 | 是 | 參照cc-register,為了效率 |
| 總線模式 | 將服務(wù)扁平化 | 改造CC過于復(fù)雜 | 是 | 本框架采用改造CC,實現(xiàn)扁平化 |
| RPC | 多進(jìn)程間通訊快 | 涉及遠(yuǎn)程調(diào)用場景不多 | 否 | 組件化間場景并不多,建議用專門庫來實現(xiàn)這個功能 |
| apt注解 | 編譯時注解,減少編寫過多模板代碼 | 編寫有些復(fù)雜,如果不是強烈需要,建議不要 | 是 | 組件化框架目的就是為了使用者減少不必要代碼編寫 |
| 反射 | 可以hack代碼,也可以動態(tài)化加載 | 運行時效率低下,用戶體驗差 | 否 | 盡量少采用反射 |
| 線程池 | 避免new Thread方式過于浪費內(nèi)存資源,復(fù)用 | 實現(xiàn)有技術(shù)成本且慎用 | ||