公司新项目就要着手研发了,希望能为这个项目多准备点知识。回想自己做过的项目,目录结构的划分总不如我的心意,有些目录命名不规范导致表达不明确,有些目录因为不具有代表性,导致在实际中不能充分发挥作用,导致随意添加目录,使得目录层次更复杂。因此今天着手设计一个语义更加明前,分层更加清晰的,又具有iOS项目普遍性的目录结构。下面就介绍下我最新设计的目录结构,目前我拿一个旧的项目用新的设计结构调整后,确实感觉清晰很多,您可以看看后面我展示的项目调整目录前后的效果。

我新设计的目录结构

MVCS(Model,View,Controller相关。包含各个功能模块)

Resources(资源型文件目录,如数据图片,plist)

Operation(主要的操作类,如网络请求操作,数据库操作,操作工具等)

config(宏定义和const等可修改的配置文件)

AppDelegate(这个目录下放的是AppDelegate.h(.m)文件)

Vendors(第三方组件)

  这样划分,名称语义比较清晰,让人一眼看上去就知道各个目录的主要职责,方便不同功能模块的同事进行开发测试工作,而且具有代表性,能满足新功能开发的变化等扩展需要。

MVCS(用户接口相关。按照功能模块划分子目录MVC)

|-功能模块1(功能模块目录)

    |-|-Models

    |-|-Views

    |-|-Controllers

  |-功能模块2

    |-|-Models

    |-|-Views

    |-|-Controllers

  |-功能模块3

    |-|-Models

    |-|-Views

    |-|-Controllers

  |-Base(重用性较高的BaseMVC,如父控制器,父视图等)

    |-|-Models

    |-|-Views

    |-|-Controllers

  |-Main(包含功能模块之外的MVC目录)

    |-|-Models

    |-|-Views

    |-|-Controllers

Resources(资源型文件目录,如数据图片,plist)

  |-photo(照片)

  |-city.plist(城市数据)

config(宏定义和const等可修改的配置文件)

  |-Const.h(常量文件)

  |-Macro.h (宏文件)

  |-Notification.h (通知定义文件)

AppDelegate(这个目录下放的是AppDelegate.h(.m)文件)

  |-AppDelegate.h

  |-AppDelegate.m

Operation(主要的操作类,如网络请求操作,数据库操作,操作工具等)

  |-Net(网络层的代码)

  |-Data(数据层代码)

  |-Tools(工具类)

  |-Category(类目)

Vendors(第三方组件)

  |-Libs(第三方库)

    |-|-AFNetworking

    |-|-FMDB

    |-|-SDWebImage    

  |-Components(第三方小组件,如第三方自定义控件等)

采用新设计的前后效果对比

  按照这个设计。我将自己的项目进行了调整。如图所示:

               

  左边是我采用该设计调整后的新的目录结构,右边是原来的目录结构。明显左边的表达清晰,结构合理,而且比较有普遍性;右边的是我以前的目录结构,因为有时候旧的目录结构不能完全达到我的要求,所以就会导致我随意创建新的目录,因此明显比较凌乱。

转载于:https://www.cnblogs.com/JackieHoo/p/5011114.html

分享我设计的iOS项目目录结构相关推荐

  1. Java项目目录结构与解析

    一个正规的Java项目目录结构首先要清晰. 所以打包的结构就很关键. 如上图所示: bean层 : 放置数据的类 client层 : 放置与用户交互的代码 dao层: 访问数据库层 dao.util层 ...

  2. html 项目 目录架构,前端项目目录结构规范.pdf

    前端项目目录结构规范 前前端端项项目目目目录录结结构构规规范范 简简介介 该文档主要的设计 目标是项 目开发的目录结构保持一致,使容易理解并方 构建与管理. 要要求求 在本文档中,使用的关键字会以中文 ...

  3. 【Python】Python 项目目录结构

    对于一个代码项目,好的目录结构是必不可少的. 我们为什么需要设计好的目录结构? 好的目录结构,意味着好的 可读性 和 可维护性, 可读性好:刚接触项目的人,一眼就能看懂目录结构,知道哪里是 源码,哪里 ...

  4. 最全的 eclipse web 项目目录结构

    本文会尽可能对 java web 项目的目录结构做出最详细的解释,尽量做到浅显易懂. eclipse web 项目目录结构 java web 项目事例 03-springmvc-drien-xgq 是 ...

  5. angular 标准目录结构_Angular-cli新建项目目录结构详解

    Angular-cli新建项目目录结构详解 在上一篇博客中我们已经通过Angular CLI命令行工具创建出来一个全新的Angular项目,要想写项目,首先我们要先搞清楚项目的目录结构是怎样的,每个文 ...

  6. 1-5Tomcat 目录结构 和 web项目目录结构

    对应我的安装路径: web项目目录结构 转载于:https://www.cnblogs.com/huiziz/p/5671612.html

  7. Spring boot 项目目录结构详解

    对SpringBoot项目目录进行分层显示能够使我们的开发思路更加的明确,代码内容更加清晰易懂,下面向大家讲解一下项目目录结构. 代码层的结构 根目录:com.springboot 1.工程启动类(A ...

  8. Angular4.x 安装|创建项目|目录结构|创建组件

    Angular4.x 安装|创建项目|目录结构|创建组件 安装最新版本的 nodejs node.js 官网:https://nodejs.org/zh-cn/ 去官网下载 node.js,下一步下一 ...

  9. Spring boot 项目目录结构

    Spring boot 项目目录结构 推荐工程结构示例: 代码层的结构 根目录:com.springboot 1.工程启动类(ApplicationServer.java)置于com.springbo ...

最新文章

  1. Firefox 的一个HTTP分析器扩展
  2. javascript常用排序算法总结
  3. java gui 线程_如何在java中将消息从工作线程传递给GUI
  4. Python的类实例属性访问规则
  5. 米斯特白帽培训讲义 漏洞篇 越权
  6. k8s ready 不调度_【零基础学云计算】k8s部署---master节点组件部署(三)
  7. 地壳中元素含量排名记忆口诀_高中化学短周期元素推断题的常见题眼
  8. java 地址传递 返回值_Java中的值传递和引用传递
  9. 使用PowerShell读取文件数据
  10. pytorch中的乘法操作
  11. 爱可生 mysql监控_actiontech-zabbix-mysql-monitor
  12. python输出二进制数_Python计算二进制数及输出补码
  13. Python数据分析实战之北京二手房房价分析
  14. Word2Vec对新闻进行分类
  15. 【知识科普】解读闪电/雷电网络,零基础秒懂!
  16. C# 调用迅雷 7 迅雷下载开放引擎
  17. C语言--自定义字符串输入/输出函数
  18. 隐写术----LSB隐写
  19. python中str数据转换成datetime的方法
  20. iOS内存管理和malloc源码解读

热门文章

  1. Android中设置EditText默认无焦点
  2. javascript span ie 与FF
  3. springer grammar revise tool
  4. 室内使用酒精消毒的时候一定要注意开窗!!!
  5. 我认为视频内容不会取代文字内容的原因
  6. nginx 缓存配置及报错解决
  7. 【JVM】调优笔记1-----堆栈概念的对碰
  8. 巨头的转身 ARM阵营开始烧英特尔的后院
  9. CentOS下 安装xampp
  10. Sql Server 查看所有存储过程或视图的位置及内容