目录结构的重要性
一个好的目录结构,能让人一目了然这是要干什么的;一个好的目录结构,能让人很清楚的知道自己要找的东西在哪里;一个好的目录结构就像一个干净整洁的家,能给紧张的生活带来轻松而不是压力。就像我用Windows电脑,喜欢给硬盘分:系统、下载、软件、收藏这四个区一样。但凡系统的文件,都放在系统盘之下。所有的下载,下载路径都设置为“下载”。软件安装包都放在“软件”。需要收藏的文件,都放在“收藏”。这我要取某个文件或者保存文件的时候,就很清楚我的目标路径在哪。对于开发来说,一个好的目录结构,不说在工作效率的提高上,至少是在心理上是能够给人带来轻松的。此处就分享一下我自己积累的、感觉比较好的iOS项目目录结构。
iOS项目目录
首先来看一下总的目录结构
当我们使用创建一个项目后,除了Code、Resource这2个文件夹外,其它的都是系统自动生成(Unit Tests、UI Tests没有包含)的。为了把所有的代码放到一个文件夹,所有的资源文件(图片、音频、其它)文件放到一个文件夹,因此创建了Code、Resource两个文件夹。以后我们就很明白的知道,代码文件应该进Code,资源文件应该进Resource。
接下来,我们来看看Code里面该怎么分文件夹。
在Code下面,我们分出了四个文件目录。分别为Function(功能)、Class(类)、Libs(第三方)、Macro(配置)。
所有的项目功能(例如注册、登录等),需要写在Function目录下。
项目用的一些工具类(例如重新封装的网络请求、封装的支付类),则需要写在Class目录下。
Libs用于存放一些第三方(cocoapods上没有的),例如支付宝SDK。
Macro用于存放系统的一些配置,例如app的一些宏、颜色、请求地址管理等。
对于Function,需要写项目的一些功能,例如登录。所以其目录之下,一般都是按照功能名来进行设定目录的。而我们采用的是MVC的设计模式,所有功能名之下,必然会有MVC的目录。至于Model、View、Controller,只需要对号入座即可。
对于Class,由于是存放项目的一些类,所以重新封装的网络请求、基础Controller、定位管理、订单管理等“公共”类,都需要放在这里。这个目录里的类,一般来说都是应该比较有价值的,需要我们认真的去封装书写。其目录结构如下。
对于Libs,第三方类,用于存放一些第三方的库。项目的第三方主要由cocoapods来管理,但不是所有的类都能在cocoapods上找得到,所以,这个Libs还是很有必要的。例如支付宝的SDK,则只能官网下载。
最后的Macro,系统配置管理。我觉得这个也是非常重要的,将所有的系统设置项整合在一起,会很方便我们去对系统的配置进行管理。例如常用的宏、网络接口、颜色、尺寸等的控制等。
例如这里的URLConfig.h,基地址+接口地址。当服务器地址切换的时候,我们只需要更改基地址,而不用去一个个的更改接口地址了。
总结
一个好的目录结构,对于开发来说还是很重要的,尤其是对项目不是很熟悉的新成员,好的目录结构能让他很快的进入状态跟着团队一起开发。同时对于项目的维护升级,也是很有便利的。
这里是我在iOS项目开发中,个人总结的,感觉比较好的目录结构。当然,适合自己的才是最好的。每个人都会有自己习惯的目录结构,此处只做借鉴只用。