2016.10.25
組件化架構(gòu)的由來
隨著互聯(lián)網(wǎng)的不斷發(fā)展铃岔,很多程序代碼量和業(yè)務越來越多,現(xiàn)有架構(gòu)已經(jīng)不適合公司業(yè)務的發(fā)展速度了峭火,很多都面臨著重構(gòu)的問題毁习。
在公司項目開發(fā)中,如果項目比較小躲胳,普通的單工程用MVC架構(gòu)就可以滿足大多數(shù)需求蜓洪。但像淘寶纤勒、蘑菇街坯苹、微信這樣的大項目,原有的單工程架構(gòu)就不足以滿足架構(gòu)需求摇天。
在一個項目越來越大粹湃,開發(fā)人員越來越多的情況下,項目會遇到很多問題
1.業(yè)務模塊間劃分不清晰泉坐,模塊之間耦合度很大为鳄,非常難維護
2.所有模塊代碼都編寫在一個項目中,測試某個模塊或功能腕让,需要編譯運行整個項目孤钦。
為了解決上面的問題歧斟,可以考慮加一個中間層來協(xié)調(diào)模塊間的調(diào)用,所偶有的模塊間的調(diào)用都會經(jīng)過中間層中轉(zhuǎn)偏形。
添加中間層后静袖,耦合還是存在的。中間層對被調(diào)用模塊存在耦合俊扭,其他模塊也需要耦合中間層才能發(fā)起調(diào)用队橙。這樣還是存在之前的相互耦合的問題,而且本質(zhì)上比之前更麻煩了萨惑。
所以應該做的是捐康,只讓其他模塊對中間層產(chǎn)生耦合關(guān)系,中間層不對其他模塊發(fā)生耦合庸蔼。
對于這個問題可以采用組件化的架構(gòu)解总,將每個模塊作為一個組件,并且建立一個主項目姐仅,這個主項目負責集成所有組件倾鲫,這樣帶來的好處是很多的:
業(yè)務劃分更清晰,新人接手更容易萍嬉,可以按組件分配開發(fā)任務乌昔。
項目可維護性更強,提高開發(fā)效率壤追。
更好排查問題磕道,某個組件出現(xiàn)問題,直接對組件進行處理行冰。
開發(fā)測試過程中溺蕉,可以只編譯自己那部分代碼,不需要編譯整個項目代碼悼做。
進行組件化開發(fā)后疯特,可以把每個組件當做一個獨立的app,每個組件甚至可以采用不同的架構(gòu)肛走,例如分別使用mvvm漓雅、mvc、mvcs等架構(gòu)朽色。