项目架构文件夹划分的意义
iOS开发者在开始搭建项目的时候,或者整理项目的,工程拥有清晰的目录结构,可让人一眼明白相应的业务和职能,多人联合开发时,复杂的项目也可以简单明了,达到快速项目开发并产生Bug少等问题。
如何划分项目架构
按业务逻辑划分
主目录按照MVC\MVVM等架构分类,内部根据项目模块分类
优点:相对比较快定位对应的业务。
缺点:模块相关类太过分散,需要来回切换寻找文件,不方便开发。
按模块划分
主目录按照模块分类,内目录按照业务分类
优点:对模块的类集中化,方便管理与开发。
缺点:当几个模块共用一些类时,不太好归类。
项目公共模块
- pod 部分,由pod管理第三方,这块的的规范性很好,不需要自定义的修改。
- Resource。存放整个工程中所要的资源文件,包含OTA所要的firmware,AWS配置生成的Plist等文件。
- Vender。放置整个工程的Manager,包含对Pod再封装的,必需通过拖拽的方法引入的第三方等。
- Expand。囊括整个工程要拓展的一些文件,包括整个项目的变、常量,Extension,混编所要的桥接文件等。
目前
项目采用按模块划分的方式组织开发。
整个项目由Sigms.xcworkspace管理Sigma.xcodeproj和Pods.xcodeproj组成。
上图详细的表示了工程主目录按模块,内目录按业务划分的具体实现。其中内目录不仅可以使用MVC的设计模式,更可以结合当前模块的业务逻辑等因素使用MVVM等其他设计模式,有很大的发挥空间。
总结
无论采用何种具体的模块划分方法,一定要满足当前工程的功能需求,只有满足业务情况下,技术才显得有价值。 当业务、需求不断发展的发展伴随着逻辑不断的更新、迭代时,就不要再为模块的划分而划分模块了。