在實際工作中氛魁,尤其是參與過比較大的項目,同時厅篓,參與開發(fā)的成員比較多的情況下秀存,隨著時間的不停的開發(fā),業(yè)務線不斷復雜羽氮,就會遇到下面一系列的問題或链。
1、代碼耦合很嚴重档押。一個控制器的存在需要依賴很多控制器澳盐,一個控制器有會被很多控制器依賴。
2令宿、項目逐漸變臃腫叼耙,龐大,復雜粒没。每次編譯都會需要很長時間筛婉。
3、整個項目要保持一致的開發(fā)模式癞松,喜歡MVC的不擅長MVVM爽撒,喜歡MVVM的感覺MVC太Low
4、不能進行獨立測試
傳統的團隊開發(fā)模式的問題在不斷的迭代中逐漸的暴露出來响蓉。所以我們應該了解更為先進高效的團隊開發(fā)模式匆浙,那就是組件化開發(fā)
下面就為大家詳細的介紹一下組件化或者叫模塊化開發(fā)
組件化開發(fā)是什么?
組件化開發(fā)厕妖,就是將一個臃腫,復雜的單一工程的項目, 根據功能或者屬性進行分解挑庶,拆分成為各個獨立的功能模塊或者組件 ; 然后根據項目和業(yè)務的需求言秸,按照某種方式, 任意組織成一個擁有完整業(yè)務邏輯的工程。這就是所謂的組件化開發(fā)迎捺。
組件化開發(fā)的優(yōu)點
既然針對上述問題提到了組件化開發(fā)举畸,那就要必要交代一下組件化模塊化開發(fā)的好處。這樣在進行對比的時候凳枝,可以更加清楚的定位我們想要解決的問題抄沮。開判斷組件化開發(fā)是不是我們需要的團隊開發(fā)模式跋核。
1、組件之間相互獨立叛买。各組件開發(fā)成員之間的代碼想相互獨立編寫的砂代,獨立編譯,獨立運行和獨立測試的率挣。
2刻伊、資源的重復里用,尤其是功能性椒功,工具性的代碼捶箱,可以很輕松的重復里用
3、迭代的效率提高动漾。通過迭代進行功能的增減丁屎,只需要進行組件的拆分和組合。很方便也很高效
組件化開發(fā)需要注意的問題
新項目在進行組件化拆分的時候旱眯;或者老項目就行組件化重構的時候需要考慮一下幾個問題晨川。比較對于耦合度很高的老項目,解耦并不是一件容易的事情键思。
1础爬、組件拆分的依據,即要把哪些內容劃分成為一個組件吼鳞?
可以按照以下幾個方面進行拆分
①基礎組件
全局常量看蚜、常用宏、常用的分類赔桌、常用三方框架的隔離封裝供炎、還有一些比較常用的小功能類
②功能組件
圖片輪播器、圖文菜單疾党、視頻中的彈幕音诫、相機、錄像雪位、二維碼竭钝、下載功能、個性定制的提示框等等雹洗,都可以封裝在一個組件中
③業(yè)務模塊
例如電商的購物車香罐,訂單管理、下單流程时肿、個人中心
再例如視頻或者直播的會員管理庇茫、視頻播放全屏,右下角小屏幕螃成,緩存等等
2旦签、組件化存在方式
一直在說組件化查坪,到底什么是組件呢。組件的存在方式又是什么呢宁炫?
組件形式:每個組件都是以pod庫的形式存在
組件內部:組件內部按照自己喜歡的開發(fā)模式以文件夾的形式進行劃分
組件測試:每個組件對單獨對應一個demo偿曙,用來完成該組件的功能測試,這樣測試機能被解耦開
3淋淀、組件的組合方式
既然組件的存在方式是以每個pod庫的形式存在的遥昧。那么我們組合組件的方法就是通過利用CocoaPods的方式添加安裝各個組件。