iOS組件化開(kāi)發(fā)1 · 什么是組件化

組件化開(kāi)發(fā).png

越來(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ú)立編寫(xiě)的,獨(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ì)員管理、視頻播放全屏,右下角小屏幕,緩存等等
  • 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)明出處!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容