iOS 項目的目錄結(jié)構(gòu)風格

怎樣才能看出一個人的代碼功底,豐富的項目經(jīng)驗。首先有一點肯定要有自己的項目目錄結(jié)構(gòu),優(yōu)秀的項目目錄結(jié)構(gòu),不僅讓自己開發(fā)效率更高,也能讓他人一目了然看出整體項目的大致方向,使項目中其他伙伴容易閱讀你的代碼,共同開發(fā)。

下面截圖是我其中一個的項目目錄結(jié)構(gòu)風格:


項目目錄結(jié)構(gòu)

Basic ?----- 主要包括繼承UIViewController的基類BasicViewController和繼承UINavigationController的基類BasicNavController。因為后面的控制器基本都會繼承使用。

AppDelegate ----- 主要包括AppDelegate和ViewController。

Main ----- 入口目錄,主要看項目需要和個人代碼風格。我這個項目中只有Start(啟動頁)、tabBar。有些可能需要封裝一個反射機制的目錄。

? ? ? ? ?Start ----- 啟動頁

? ? ? ? ?tabBar ----- 封裝UITabBarController

Business ----- 業(yè)務目錄,用于模塊開發(fā)

設(shè)計模式我一般使用MVC+MVVM混合開發(fā),頁面簡單沒有多少業(yè)務邏輯一般用MVC,對于頁面復雜、業(yè)務邏輯多一般用MVVM。當然設(shè)計模式是死的,我們要靈活運用到項目中,高效、美觀、易閱讀、易迭代才是我們開發(fā)者所追求的目標,曾經(jīng)寫過一個項目的其中一個模塊,我盡量把邏輯、網(wǎng)絡(luò)、視圖、事件都移出Controller,Controller只單單用于展示,但是由于Controller的屬性過多,Controller看起來還是很臃腫。后來想起可不可以將Controller的屬性封裝成屬性model來使用,后面業(yè)務繁忙就落下了這個問題。

目前業(yè)務開發(fā)結(jié)構(gòu)分兩種:一、每個功能塊都包含一個MVVM。二、一個MVVM下面包括所有功能塊。而我用的是第一種,按功能塊開發(fā)會清楚方便些。

Config ----- 配置目錄,主要放.pch、.h宏文件等

Operation ----- 用于網(wǎng)絡(luò)、數(shù)據(jù)、工具等操作

? ? ? ? Categorg ----- 存放控件的分類,比如UILabel+Util、UIImage+Util、 ? ? ??UIColor+Contract等。

? ? ? ? Data ----- 數(shù)據(jù)層代碼,用于本地數(shù)據(jù)保存讀取的操作,數(shù)據(jù)庫操作。

? ? ? ? Tools ----- 工具類,這個看你個人如何分類了,比如控件點擊事件封裝成工具、對GCD封裝成工具等等,無論是控件、還是操作都可以做成工具。

? ? ? ? ?Net ----- 網(wǎng)絡(luò)層代碼,用于封裝網(wǎng)絡(luò)的。

Resources ----- 資源目錄,一般項目中的.plist,.xcassets都放在這里,還有的視頻文件、圖片文件、文檔文件都放在這里。

Vendors ----- 第三方組件,包括Components(自定義控件)、Libs(第三方庫,自定義庫)

? ? ? ? ? ?Components ----- 自定義控件,比如自定義的MyView,繼承于View等。

? ? ? ? ? ?Libs ----- 第三方庫,自定義庫,比如極光友盟導入的靜態(tài)庫,第三方登錄導入的靜態(tài)庫,以及自己封裝好的sdk。

ps : 每個目錄結(jié)構(gòu)風格沒有優(yōu)劣高低之分,適合自己的風格,適合當前業(yè)務開發(fā)才是最好的,別人的只是用于參考,就像于有些人喜歡用中文備注,有些人喜歡用英文一樣。不過我覺得有句話是最能體現(xiàn)我們開發(fā)目錄結(jié)構(gòu)這種思想的意義所在,高效、美觀、易閱讀、易迭代才是我們開發(fā)者所追求的目標。

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

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