zoukankan      html  css  js  c++  java
  • 分享我设计的iOS项目目录结构

      公司新项目就要着手研发了,希望能为这个项目多准备点知识。回想自己做过的项目,目录结构的划分总不如我的心意,有些目录命名不规范导致表达不明确,有些目录因为不具有代表性,导致在实际中不能充分发挥作用,导致随意添加目录,使得目录层次更复杂。因此今天着手设计一个语义更加明前,分层更加清晰的,又具有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(第三方小组件,如第三方自定义控件等)

     …

     

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

     

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

                   

     

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

  • 相关阅读:
    浏览器缓存机制
    关于CSRF的攻击
    关于CGI、FastCGI和PHP-FPM的关系
    PHP-FPM进程数的设定
    一个论坛引发的血案
    Django中的权限系统
    Django中使用ModelForm实现Admin功能
    Django中使用Bootstrap
    Django的用户认证
    vtkMapper
  • 原文地址:https://www.cnblogs.com/JackieHoo/p/5011114.html
Copyright © 2011-2022 走看看