如上圖所示:整個app的架構(gòu)分為了4層
- 1、最上面是App殼,用于加載各個業(yè)務(wù)模塊
- 2腌歉、業(yè)務(wù)層:包含了現(xiàn)有的原生代碼寫的業(yè)務(wù),以及后期使用RN接入新的業(yè)務(wù)模塊
- 3齐苛、服務(wù)層:包含了基礎(chǔ)服務(wù)翘盖,UI組件和功能模塊,以及第三方平臺服務(wù)
另外:頁面路由和事件訂閱會貫穿業(yè)務(wù)層和服務(wù)層 - 4凹蜂、基礎(chǔ)庫層:集中依賴1,2,3層普遍會使用到的基礎(chǔ)庫
基于目前單兵作戰(zhàn)的現(xiàn)狀馍驯,以及功能的快速變更,業(yè)務(wù)層沒有進(jìn)一步拆分玛痊,拆的過于細(xì)反而會影響開發(fā)效率汰瘫,但隨著業(yè)務(wù)的不斷復(fù)雜增多,以及用戶數(shù)量的增加擂煞,為了降低用戶的更新成本混弥,會加入熱修復(fù)和插件化的功能,進(jìn)一步拆分業(yè)務(wù)層对省,獨立出業(yè)務(wù)組件發(fā)布到云效平臺蝗拿。
下圖為具體各個模塊對應(yīng)的module分布,實線框為真實的module
業(yè)務(wù)層采用MVVM的開發(fā)模式:如下圖所示:
View:負(fù)責(zé)UI顯示蒿涎,用戶交互事件處理哀托,
Model:數(shù)據(jù)模型,本地數(shù)據(jù)或者網(wǎng)絡(luò)數(shù)據(jù)獲韧汀萤捆;
ViewModel:負(fù)責(zé)對Model和View的通信橋梁。
目前項目中沒有用到數(shù)據(jù)庫--Room,但已經(jīng)預(yù)留了接口俗或,Repository負(fù)責(zé)對VM層市怎,具體數(shù)據(jù)來源VM不需要關(guān)心
除了基礎(chǔ)服務(wù)層 和 業(yè)務(wù)層 兩個module,其他module 都已經(jīng)抽離并發(fā)布到云效-如下圖所示:
下圖主要展示了基礎(chǔ)服務(wù)層(app-base)和業(yè)務(wù)層(app)現(xiàn)有的代碼目錄結(jié)構(gòu)辛慰,這些部分的代碼會時常變動和新增区匠,穩(wěn)定之后會繼續(xù)剝離,發(fā)布到云效倉庫中帅腌。
目錄不建議太要深驰弄,3級以內(nèi)為最佳。