越來(lái)越多公司弛针,開(kāi)始了組件化统抬,你還要等到什么時(shí)候......
說(shuō)到開(kāi)發(fā)模式,我們最熟知的開(kāi)發(fā)模式 MVC 或者最近比較熱門的MVVM灭贷。但是我今天說(shuō)的組件化的開(kāi)發(fā)温学,其實(shí)MVC不是一類的。它其實(shí)是·····
在實(shí)際工作中甚疟,尤其是參與過(guò)比較大的項(xiàng)目枫浙,同時(shí),參與開(kāi)發(fā)的成員比較多的情況下古拴,隨著時(shí)間的不停的開(kāi)發(fā),業(yè)務(wù)線不斷復(fù)雜真友,就會(huì)遇到下面一系列的問(wèn)題黄痪。真的好煩哦·····
- 1、代碼耦合很嚴(yán)重盔然。一個(gè)控制器的存在需要依賴很多控制器桅打,一個(gè)控制器有會(huì)被很多控制器依賴。
- 2愈案、項(xiàng)目逐漸變臃腫挺尾,龐大,復(fù)雜站绪。每次編譯都會(huì)需要很長(zhǎng)時(shí)間遭铺。
- 3、整個(gè)項(xiàng)目要保持一致的開(kāi)發(fā)模式,喜歡MVC的不擅長(zhǎng)MVVM魂挂,喜歡MVVM的感覺(jué)MVC太Low
- 4甫题、不能進(jìn)行獨(dú)立測(cè)試
傳統(tǒng)的團(tuán)隊(duì)開(kāi)發(fā)模式的問(wèn)題在不斷的迭代中逐漸的暴露出來(lái)。所以我們應(yīng)該了解更為先進(jìn)高效的團(tuán)隊(duì)開(kāi)發(fā)模式涂召,那就是坠非!組件化開(kāi)發(fā)
下面就為大家詳細(xì)的介紹一下組件化
或者叫模塊化
開(kāi)發(fā)
什么是組件化開(kāi)發(fā)
組件化開(kāi)發(fā),就是將一個(gè)臃腫果正,復(fù)雜的單一工程的項(xiàng)目, 根據(jù)功能或者屬性進(jìn)行分解炎码,拆分成為各個(gè)獨(dú)立的功能模塊或者組件 ; 然后根據(jù)項(xiàng)目和業(yè)務(wù)的需求,按照某種方式, 任意組織成一個(gè)擁有完整業(yè)務(wù)邏輯的工程秋泳。這就是所謂的組件化開(kāi)發(fā)潦闲。
組件化開(kāi)發(fā)的優(yōu)點(diǎn)
既然針對(duì)上述問(wèn)題提到了組件化開(kāi)發(fā),那就要必要交代一下組件化模塊化開(kāi)發(fā)的好處轮锥。這樣在進(jìn)行對(duì)比的時(shí)候矫钓,可以更加清楚的定位我們想要解決的問(wèn)題。開(kāi)判斷組件化開(kāi)發(fā)是不是我們需要的團(tuán)隊(duì)開(kāi)發(fā)模式舍杜。
- 1新娜、組件之間相互獨(dú)立。各組件開(kāi)發(fā)成員之間的代碼想相互獨(dú)立編寫的既绩,獨(dú)立編譯概龄,獨(dú)立運(yùn)行和獨(dú)立測(cè)試的。
- 2饲握、資源的重復(fù)里用私杜,尤其是功能性,工具性的代碼救欧,可以很輕松的重復(fù)里用
- 3衰粹、迭代的效率提高。通過(guò)迭代進(jìn)行功能的增減笆怠,只需要進(jìn)行組件的拆分和組合铝耻。很方便也很高效
組件化開(kāi)發(fā)需要注意的問(wèn)題
新項(xiàng)目在進(jìn)行組件化拆分的時(shí)候;或者老項(xiàng)目就行組件化重構(gòu)的時(shí)候需要考慮一下幾個(gè)問(wèn)題蹬刷。比較對(duì)于耦合度很高的老項(xiàng)目瓢捉,解耦并不是一件容易的事情。
- 1办成、 組件拆分的依據(jù)泡态,即要把哪些內(nèi)容劃分成為一個(gè)組件?
可以按照以下幾個(gè)方面進(jìn)行拆分- ① 基礎(chǔ)組件
全局常量迂卢、常用宏某弦、常用的分類桐汤、常用三方框架的隔離封裝、還有一些比較常用的小功能類 - ② 功能組件
圖片輪播器刀崖、圖文菜單惊科、視頻中的彈幕、相機(jī)亮钦、錄像馆截、二維碼、下載功能蜂莉、個(gè)性定制的提示框等等蜡娶,都可以封裝在一個(gè)組件中 - ③ 業(yè)務(wù)模塊
例如電商的購(gòu)物車,訂單管理映穗、下單流程窖张、個(gè)人中心
再例如視頻或者直播的會(huì)員管理、視頻播放全屏蚁滋,右下角小屏幕宿接,緩存等等
- ① 基礎(chǔ)組件
2、組件化存在方式
一直在說(shuō)組件化辕录,到底什么是組件呢睦霎。組件的存在方式又是什么呢?
組件形式: 每個(gè)組件都是以pod庫(kù)的形式存在
組件內(nèi)部:組件內(nèi)部按照自己喜歡的開(kāi)發(fā)模式以文件夾的形式進(jìn)行劃分
組件測(cè)試:每個(gè)組件對(duì)單獨(dú)對(duì)應(yīng)一個(gè)demo走诞,用來(lái)完成該組件的功能測(cè)試副女,這樣測(cè)試機(jī)能被解耦開(kāi)3、組件的組合方式
既然組件的存在方式是以每個(gè)pod庫(kù)的形式存在的蚣旱。那么我們組合組件的方法就是通過(guò)利用CocoaPods的方式添加安裝各個(gè)組件碑幅。
組合在一起的組件,根據(jù)需求可以用過(guò)組件自己提供的API進(jìn)行通訊塞绿,或者有中間件統(tǒng)一進(jìn)行組件中的通訊沟涨,在后面的文章中,我會(huì)一一介紹
總結(jié)
組件化開(kāi)發(fā)這個(gè)專題后面的內(nèi)容會(huì)不斷的更新异吻,歡迎大家關(guān)注拷窜!
轉(zhuǎn)載請(qǐng)標(biāo)明出處!