概念:
1.組件化是指解耦復(fù)雜系統(tǒng)時將多個功能模塊拆分捶惜、重組的過程
2.把復(fù)雜系統(tǒng)拆分成多個組件批钠,分離組件邊界和責任盗冷,便于獨立升級和維護怠苔,把獨立模塊拆分,也有利于快速把基礎(chǔ)模塊提供給其他APP使用仪糖。
3.去除模塊間的耦合嘀略,使得每個業(yè)務(wù)模塊可以獨立當做App存在,對于其他模塊沒有直接的依賴關(guān)系乓诽。 此時業(yè)務(wù)模塊就成為了業(yè)務(wù)組件
優(yōu)點:
提高協(xié)作效率:按模塊解耦帜羊,開發(fā)效率高噩峦。
加快編譯速度:不需要修改的組件二進制依賴夺溢,項目編譯時間可以縮短很多
功能重用:可復(fù)用功能模塊向其他APP搬遷時成本低
不足:
組件通訊比較不方便
多組件相互依賴后检柬,代碼升級比較麻煩
方法論:
縱向分層:核心基礎(chǔ)組件李皇、通用基礎(chǔ)組件靠抑、業(yè)務(wù)基礎(chǔ)組件躯枢、業(yè)務(wù)組件
核心基礎(chǔ)組件:全網(wǎng)APP都可以使用的:網(wǎng)絡(luò)庫封裝微峰、工具類集合等等
通用基礎(chǔ)組件:小冰內(nèi)部所有APP都可以使用的基礎(chǔ)組件:Log庫伙狐、埋點庫等等
業(yè)務(wù)基礎(chǔ)組件:基于一些業(yè)務(wù)形態(tài)封裝的基礎(chǔ)組件剥纷,可以提供給接入了小冰組件化架構(gòu)的APP使用痹籍,可深度定制化:IM數(shù)據(jù)組件、支付功能組件晦鞋、首頁框架組件等等
業(yè)務(wù)組件:各個APP自有組件蹲缠、其他APP可以完全復(fù)制在自我迭代,或完全復(fù)用相同業(yè)務(wù)功能悠垛。
組件化過程需要解決的幾個核心問題:
組件拆分原則:單一功能小組件线定?混合功能大組件?
組件代碼管理方式:大APP模式确买?單一APP模式斤讥?
組件間通訊方式:
頁面路由方式:
組件管理工具:
公共類庫管理問題:如何避免信息不對稱導(dǎo)致的重復(fù)造輪子