一個(gè)良好的項(xiàng)目目錄結(jié)構(gòu),要達(dá)到以下兩個(gè)目的:
1)使項(xiàng)目更適合于團(tuán)隊(duì)開發(fā),能夠降低耦合、便于任務(wù)的劃分和代碼的整合管理。
2)使項(xiàng)目能夠積累出更多可復(fù)用的代碼和架構(gòu)。
這個(gè)結(jié)構(gòu)會在不斷遇到問題解決問題的過程中權(quán)衡、進(jìn)化,在這個(gè)過程最重要的是能夠保持:
1)主干簡潔。主干上防止過度劃分,過度劃分會讓代碼放在這個(gè)目錄下也可以,放在另一個(gè)目錄下好像也行,容易混亂。
2)分支開放。不對過于細(xì)節(jié)的分支做嚴(yán)格規(guī)范,可以發(fā)揮大家的靈活性和創(chuàng)造性。

Define —— 用于存放我們設(shè)置的一些宏(#define)。
Model —— 用于存放模型類(數(shù)據(jù)模型)。
NetworkManager —— 用于存放網(wǎng)絡(luò)請求類
Resources —— 用于存放資源 例如xib,storyboard,圖片,plist,音頻,視頻
Util —— 用于存放我們定義的分類和擴(kuò)展或者工具類
Vendors —— 用于存放第三方框架或者第三方SDK文件
View —— 用于存放視圖類
ViewControllers —— 用于存放視圖控制器類
ViewModel —— 用于存放視圖模型類,及處理 View 和 Model 之間的業(yè)務(wù)邏輯。
整體項(xiàng)目的運(yùn)行流程是:
ViewController->向ViewModel請求數(shù)據(jù)->ViewModel->向網(wǎng)絡(luò)請求數(shù)據(jù)->需要數(shù)據(jù)解析類型負(fù)責(zé)解析
項(xiàng)目編寫的順序是,需要先完成最底層的依賴,然后層層向上。