zoukankan      html  css  js  c++  java
  • iOS开发总结——项目目录结构

    1.前言

          清晰的项目目录结构有利于项目的开发,同时也是软件架构的一部分,所以,项目开发之初搭建项目的目录结构很重要。刚转iOS时,自己并不知道如何搭建App的项目目录,在参与开发两个应用后,结合Web开发的目录习惯我整理了自己的目录结构。分享一下,欢迎交流。

    2.我的项目目录结构

    项目目录
    ├── ThirdLib(三方库)
    │   ├── SDWebImage
    │   └── AFNetworking
    ├── Framework(自己封装的类库)
    ├── General(通用类目录)
    │   ├── Class(通用的类,比如自定义父类)
    │   └── Helper(通用辅助方法)
    ├── Main(程序单一入口,仅放AppDelegate区分其他文件)
    │   ├── AppDelegate.h
    │   └── AppDelegate.m
    ├── Model(数据模型类目录)
    │   ├── Macro(宏定义目录)
    │   ├── BLL(业务逻辑层目录)
    │   ├── DAL(数据访问层目录)
    │   ├── Entity(自定义实体目录)
    │   ├── Request(网络请求类目录)
    │   ├── Location(定位服务类目录)
    │   └── Socket(Socket类目录)
    ├── Module(功能模块目录)
    │   │ 
    │   ├─── ModuleA
    │   │      ├── ViewControllerA.h(视图控制器头文件)
    │   │      └── ViewControllerA.m(视图控制器m文件)
    │   ├── ModuleB
    │   ├── ModuleC
    │   ├── ModuleD
    │   └── ModuleE
    └── View(视图类目录)
        └── MyTestView
    

    3.说明

    1)项目目录

    项目程序文件根目录,存放项目程序文件、资源文件等。

    2)ThirdLib

    第三方开源类库,比如,SDWebImage、AFNetworking等。

    3)Framework

    自己封装的类库。

    4)General

    通用类目录,存放自定义的视图控制器基类等。

    5)Main

    程序单一入口,仅放AppDelegate区分其他文件

    6)Model

    数据模型类文件目录。主要用于存放自定义的数据模型类。

    子目录:

    I)Macro(宏定义目录)

            我把自己的很多宏定义,包括色彩字体等样式宏定义、业务逻辑宏定义、网络请求、Core Data的宏定义等头文件放在该目录下。命名规则为XxxMacro.h。这样在头文件引入的时候很清楚我要引入哪些宏定义,以避免重复引用。(虽然import已经避免了编译文件时重复引入文件,但是强迫症患者。。你懂的)

    II)BLL(业务逻辑层目录)

            业务逻辑层(Business Logic Layer)目录主要存放的是项目的业务逻辑处理类及分类。按照项目功能需求来封装业务逻辑。具体命名依所实现的功能业务来命名。

    III)DAL(数据访问层目录)

            数据访问层目录 主要存放项目.xcdatamodeld文件和封装的Core Data接口类。

    IV)Entity(自定义实体目录)

            数据模型实体类目录。存放例如User等数据模型的类文件。

    V)Request(网络请求类目录)

            存放网络请求的类目录。

     

    VI)Location(定位服务类目录)

            存放定位服务类。

     

    VII) Socket(Socket类目录)

            存放Socket类。

    7)Module

            功能模块类目录,按照项目的功能模块创建子目录。每个子目录下存放该模块的视图控制器文件。

    8)View

            视图文件类目录。存放视图文件。比如自己封装的视图控件,封装的cell等。

    4.小结

    1)吐槽一下博客园的文档编辑。编写HTML模式的时候,我无意间点了取消。。。然后全都木有了。。。都木有了。。。木有了。。。有了。。。了。。。!!!!!!妹啊!!为什么取消键在右边啊喂!!!!然后command+z。。。页面就全部崩溃了。。。。面就全部崩溃了。。。。就全部崩溃了。。。。全部崩溃了。。。。部崩溃了。。崩溃了。。。。溃了。。。。了。。。。!!!!!!另外,博客输入文本的插件内容区域高度太小了。。。用起来很不爽啊!!!!!!体验太差!差评

    2)言归正传,我的目录结构是综合了之前的开发经验和我leader的开发习惯以及网上的目录结构整理的,并不一定适用于其他项目。欢迎留言交流,谢谢~

  • 相关阅读:
    程序员的自我修养 符号修饰 函数签名 以及一个引申的问题: extern "c"
    Spring.NET学习笔记(1)基本依赖注入
    Spring.NET学习笔记(3)注册事件注入
    Spring.NET学习笔记(2)依赖注入细节
    jQuery LigerUI 使用教程入门篇
    Spring.NET学习笔记(5)对象生命周期和创建者对象
    【C#.NET】C#皮肤与主题应用实例
    【VB/C#】Kill进程
    【C#.NET】C#用户控件的使用
    【C#.NET】C#创建多语言网站
  • 原文地址:https://www.cnblogs.com/nycoder/p/4729513.html
Copyright © 2011-2022 走看看