隨著業(yè)務(wù)的發(fā)展 App 開(kāi)發(fā)技術(shù)也越來(lái)越成熟,對(duì)開(kāi)發(fā)者來(lái)說(shuō) App 代碼量也迅速地增長(zhǎng)到一個(gè)數(shù)量級(jí)。對(duì)于如何架構(gòu) App 已經(jīng)每個(gè)開(kāi)發(fā)者面臨的實(shí)際問(wèn)題。好的架構(gòu)可以提高開(kāi)發(fā)者的效率,降低維護(hù)成本。
由于業(yè)務(wù)增長(zhǎng)引起項(xiàng)目中代碼量激增,以及歷史遺留問(wèn)題和結(jié)構(gòu)混亂,作為一個(gè)有代碼潔癖的程序員,很早就開(kāi)始思考如何組織 App 架構(gòu)的問(wèn)題了。目前遇到的主要有以下幾點(diǎn)問(wèn)題:
代碼量激增引起結(jié)構(gòu)混亂
各個(gè)模塊相互引用且耦合度高
無(wú)法獨(dú)立開(kāi)發(fā)或者調(diào)試組件代碼
無(wú)法應(yīng)對(duì)組件插拔的需求(例如:產(chǎn)品經(jīng)理今天把這個(gè)功能加上,第二天又去掉,第三天又加回來(lái)T_T)
App 架構(gòu)圖
在閱讀了大量的文檔之后,根據(jù)實(shí)際項(xiàng)目開(kāi)發(fā)遇到的問(wèn)題,我總結(jié)了以下架構(gòu)。由于水平有限,有不合理的歡迎拍磚
自下而上將 App 分為: