我們遇到的很多項目并不是從零開始的,更多的是需要產(chǎn)品迭代和更新的!在項目業(yè)務(wù)趨于穩(wěn)定的時候,iOS攻城獅閑的xxx!
這個時候,可以考慮優(yōu)化和完善項目了?。?!
項目
1、結(jié)構(gòu)和架構(gòu)(有的是架構(gòu),小項目叫結(jié)構(gòu))
結(jié)構(gòu) : 1、文件目錄分類 2、第三方庫管理
文件目錄分類
了方便管理,最好將Xcode中的項目展示目錄與實際的存儲目錄保持一致。
此外,一般按業(yè)務(wù)模塊分類,一級目錄可以按照MVC格式,也可以按照業(yè)務(wù)模塊劃分
ps:
用最普遍的Model View Controller架構(gòu)舉例:
以一個基礎(chǔ)的電商項目來解釋,4個tabbarItem對應(yīng)著四大模塊,首頁、分類、購物車、個人中心,往下每個還可以細(xì)分為MVC+Session層
按項目架構(gòu)來分
ps:
最外層為Model、View、Controller、Session層,內(nèi)部才是業(yè)務(wù)模塊
這一塊無需多言,兩者配合使用即可
第三方庫管理
管理方面有三種方式:
1、手動管理
2、手動維護(hù)各種第三方庫,適合于已經(jīng)趨于穩(wěn)定、極少Bug的三方庫
3、CocoaPods
4、Carthage
這里很推薦使用 Carthage,對項目的入侵性很小,并且是中心化管理,可以嘗試一下,如果其他需求,請自便!!
項目架構(gòu) - 大項目 - 推薦使用 MVVM 結(jié)構(gòu)
項目架構(gòu)
ps:
項目邏輯基本都圍繞了一條主線時,我們采用MVC已經(jīng)可以很好的滿足我們的需求,但是當(dāng)業(yè)務(wù)邏輯日漸復(fù)雜的時候,我們單純的采用Model View Controller這種編程模式已經(jīng)不能很好的將業(yè)務(wù)邏輯與代碼分離開,也就是邏輯解耦;
為了更好的將ViewController解耦,產(chǎn)生了Model View ViewModel這種編程模式,ViewModel層其實做了一層Model與ViewController中間的橋接,有利有弊,該模式會產(chǎn)生很多膠水代碼,但是配合響應(yīng)式編程框架(如 ReactiveCocoa或者RxSwift),可以做到最大程度的解耦。適合與自己實際項目業(yè)務(wù)復(fù)雜程度的模式才是好的編程模式。
未完待續(xù)!寫不下去了??!