一个良好的项目目录结构,要达到以下两个目的:
1)使项目更适合于团队开发,能够降低耦合、便于任务的划分和代码的整合管理。
2)使项目能够积累出更多可复用的代码和架构。
这个结构会在不断遇到问题解决问题的过程中权衡、进化,在这个过程最重要的是能够保持:
1)主干简洁。主干上防止过度划分,过度划分会让代码放在这个目录下也可以,放在另一个目录下好像也行,容易混乱。
2)分支开放。不对过于细节的分支做严格规范,可以发挥大家的灵活性和创造性。
Define —— 用于存放我们设置的一些宏(#define)。
Model —— 用于存放模型类(数据模型)。
NetworkManager —— 用于存放网络请求类
Resources —— 用于存放资源 例如xib,storyboard,图片,plist,音频,视频
Util —— 用于存放我们定义的分类和扩展或者工具类
Vendors —— 用于存放第三方框架或者第三方SDK文件
View —— 用于存放视图类
ViewControllers —— 用于存放视图控制器类
ViewModel —— 用于存放视图模型类,及处理 View 和 Model 之间的业务逻辑。
整体项目的运行流程是:
ViewController->向ViewModel请求数据->ViewModel->向网络请求数据->需要数据解析类型负责解析
项目编写的顺序是,需要先完成最底层的依赖,然后层层向上。