怎樣才能看出一個(gè)人的代碼功底,豐富的項(xiàng)目經(jīng)驗(yàn)插佛。首先有一點(diǎn)肯定要有自己的項(xiàng)目目錄結(jié)構(gòu)杠巡,優(yōu)秀的項(xiàng)目目錄結(jié)構(gòu),不僅讓自己開發(fā)效率更高雇寇,也能讓他人一目了然看出整體項(xiàng)目的大致方向氢拥,使項(xiàng)目中其他伙伴容易閱讀你的代碼,共同開發(fā)锨侯。
下面截圖是我其中一個(gè)的項(xiàng)目目錄結(jié)構(gòu)風(fēng)格:
Basic ?----- 主要包括繼承UIViewController的基類BasicViewController和繼承UINavigationController的基類BasicNavController嫩海。因?yàn)楹竺娴目刂破骰径紩?huì)繼承使用。
AppDelegate ----- 主要包括AppDelegate和ViewController囚痴。
Main ----- 入口目錄叁怪,主要看項(xiàng)目需要和個(gè)人代碼風(fēng)格。我這個(gè)項(xiàng)目中只有Start(啟動(dòng)頁)深滚、tabBar奕谭。有些可能需要封裝一個(gè)反射機(jī)制的目錄。
? ? ? ? ?Start ----- 啟動(dòng)頁
? ? ? ? ?tabBar ----- 封裝UITabBarController
Business ----- 業(yè)務(wù)目錄痴荐,用于模塊開發(fā)
設(shè)計(jì)模式我一般使用MVC+MVVM混合開發(fā)血柳,頁面簡單沒有多少業(yè)務(wù)邏輯一般用MVC,對(duì)于頁面復(fù)雜蹬昌、業(yè)務(wù)邏輯多一般用MVVM混驰。當(dāng)然設(shè)計(jì)模式是死的,我們要靈活運(yùn)用到項(xiàng)目中皂贩,高效栖榨、美觀、易閱讀明刷、易迭代才是我們開發(fā)者所追求的目標(biāo)婴栽,曾經(jīng)寫過一個(gè)項(xiàng)目的其中一個(gè)模塊,我盡量把邏輯辈末、網(wǎng)絡(luò)愚争、視圖映皆、事件都移出Controller,Controller只單單用于展示轰枝,但是由于Controller的屬性過多捅彻,Controller看起來還是很臃腫。后來想起可不可以將Controller的屬性封裝成屬性model來使用鞍陨,后面業(yè)務(wù)繁忙就落下了這個(gè)問題步淹。
目前業(yè)務(wù)開發(fā)結(jié)構(gòu)分兩種:一、每個(gè)功能塊都包含一個(gè)MVVM诚撵。二缭裆、一個(gè)MVVM下面包括所有功能塊。而我用的是第一種寿烟,按功能塊開發(fā)會(huì)清楚方便些澈驼。
Config ----- 配置目錄,主要放.pch筛武、.h宏文件等
Operation ----- 用于網(wǎng)絡(luò)缝其、數(shù)據(jù)、工具等操作
? ? ? ? Categorg ----- 存放控件的分類畅铭,比如UILabel+Util氏淑、UIImage+Util勃蜘、 ? ? ??UIColor+Contract等硕噩。
? ? ? ? Data ----- 數(shù)據(jù)層代碼,用于本地?cái)?shù)據(jù)保存讀取的操作缭贡,數(shù)據(jù)庫操作炉擅。
? ? ? ? Tools ----- 工具類,這個(gè)看你個(gè)人如何分類了阳惹,比如控件點(diǎn)擊事件封裝成工具谍失、對(duì)GCD封裝成工具等等,無論是控件莹汤、還是操作都可以做成工具快鱼。
? ? ? ? ?Net ----- 網(wǎng)絡(luò)層代碼,用于封裝網(wǎng)絡(luò)的纲岭。
Resources ----- 資源目錄抹竹,一般項(xiàng)目中的.plist,.xcassets都放在這里,還有的視頻文件止潮、圖片文件窃判、文檔文件都放在這里。
Vendors ----- 第三方組件喇闸,包括Components(自定義控件)袄琳、Libs(第三方庫询件,自定義庫)
? ? ? ? ? ?Components ----- 自定義控件,比如自定義的MyView唆樊,繼承于View等宛琅。
? ? ? ? ? ?Libs ----- 第三方庫,自定義庫逗旁,比如極光友盟導(dǎo)入的靜態(tài)庫夯秃,第三方登錄導(dǎo)入的靜態(tài)庫,以及自己封裝好的sdk痢艺。
ps : 每個(gè)目錄結(jié)構(gòu)風(fēng)格沒有優(yōu)劣高低之分仓洼,適合自己的風(fēng)格,適合當(dāng)前業(yè)務(wù)開發(fā)才是最好的堤舒,別人的只是用于參考色建,就像于有些人喜歡用中文備注,有些人喜歡用英文一樣舌缤。不過我覺得有句話是最能體現(xiàn)我們開發(fā)目錄結(jié)構(gòu)這種思想的意義所在箕戳,高效、美觀国撵、易閱讀陵吸、易迭代才是我們開發(fā)者所追求的目標(biāo)。