我的項(xiàng)目經(jīng)歷了三次結(jié)構(gòu)性變化
第一次:?jiǎn)蝝odule+mvc結(jié)構(gòu)榛斯。
隨著項(xiàng)目業(yè)務(wù)的拓展恳啥,項(xiàng)目分包的差異化變遷以及團(tuán)隊(duì)人員的擴(kuò)充,傳統(tǒng)的單module方式
明顯已經(jīng)不再適應(yīng)團(tuán)隊(duì)和項(xiàng)目了±ブ基于這種情況,我開(kāi)始著手對(duì)項(xiàng)目進(jìn)行結(jié)構(gòu)調(diào)整术陶,就是下方的組件化模式凑懂。
第二次:組件化+mvp結(jié)構(gòu)
根據(jù)根據(jù)業(yè)務(wù)進(jìn)行組件劃分,單人維護(hù)業(yè)務(wù)module梧宫,單module 運(yùn)行接谨、開(kāi)發(fā)、調(diào)試塘匣;提高工作效率脓豪。
具體結(jié)構(gòu)如下圖
發(fā)展到現(xiàn)在,這個(gè)結(jié)構(gòu)還能支持團(tuán)隊(duì)和項(xiàng)目需要忌卤,但是造成了分包維護(hù)的困難扫夜,對(duì)工作質(zhì)量的上升也遇到了瓶頸。
基于此我進(jìn)行了第三次結(jié)構(gòu)設(shè)計(jì)埠巨;順利解決了分包維護(hù),多人開(kāi)發(fā)现拒,分包發(fā)布的困難并滿足了項(xiàng)目和團(tuán)隊(duì)需要辣垒;
第三次:smv 結(jié)構(gòu)
在組件化和mvp的架構(gòu)思想基礎(chǔ)上,根據(jù)實(shí)際需要印蔬,我對(duì)組件化+mvp的結(jié)構(gòu)進(jìn)行了一次升級(jí)勋桶。具體項(xiàng)目結(jié)構(gòu)如圖:
為了區(qū)分 組件化+mvp 的架構(gòu),我把整體架構(gòu)稱為:smv架構(gòu)侥猬。具體解釋一下具體功能:
組件化不用過(guò)多的解釋了例驹,就是對(duì)具有不同功能的業(yè)務(wù)組件進(jìn)行module封裝;
主要說(shuō)一下smv結(jié)構(gòu)設(shè)計(jì):
module結(jié)構(gòu)圖:
view結(jié)構(gòu)圖:
s -> service 服務(wù)
m -> businessmodule 數(shù)據(jù)
v -> view 視圖
service是基礎(chǔ)服務(wù)退唠;
基礎(chǔ)服務(wù)包含:網(wǎng)絡(luò)工具鹃锈,圖片工具,自定義view等其他工具瞧预;
可以支持多個(gè)業(yè)務(wù)module屎债;
businessmodule是業(yè)務(wù)服務(wù)仅政。
業(yè)務(wù)服務(wù)包含:具體業(yè)務(wù)功能,包含業(yè)務(wù)數(shù)據(jù)處理盆驹,業(yè)務(wù)邏輯處理圆丹;不涉及ui和交互;
可以支持多個(gè)業(yè)務(wù)分包應(yīng)用躯喇;
view是視圖
視圖包含:各業(yè)務(wù)的ui和交互辫封。
依賴于業(yè)務(wù)服務(wù),可以定制多個(gè) ui/功能差異化分包廉丽,自由組合倦微,自由拆分。
總思路:基礎(chǔ)服務(wù) + 業(yè)務(wù)服務(wù) + ui交互 + 分包組裝
使用:
view層持有businessmodule依賴雅倒。
businessmodule持有service依賴
view為分包表現(xiàn)層璃诀。
解決問(wèn)題:
1、從結(jié)構(gòu)上實(shí)現(xiàn)ui和業(yè)務(wù)的解耦蔑匣。
2劣欢、技能滿足單人開(kāi)發(fā)維護(hù),也能滿足多人發(fā)開(kāi)維護(hù)裁良。
3凿将、適用于單業(yè)務(wù)分角色分包模式。
4价脾、減小開(kāi)發(fā)和維護(hù)壓力牧抵。
5、方便單元測(cè)試侨把,業(yè)務(wù)功能和ui交互均可單獨(dú)測(cè)試犀变。
6、使性能優(yōu)化秋柄,交互優(yōu)化工作更簡(jiǎn)單获枝。
smv結(jié)合mvp使用案例,后續(xù)更新...