ios 之闲谈项目搭建结构以及代码规范

作者: flowerflower | 来源:发表于2017-07-20 12:47 被阅读1432次

    最近公司换了个产品经理,该公司以产品线为主,无项目经理,无疑便是产品当道,所谓新官上任三把火,推翻之前的迭代了3次的项目,故辛辛苦苦大半年,一夜又回到了解放前,用粗俗的话来说就是在老板面前会拍马屁,而且还能拍的一套一套的,马屁成精的他成为boss身边的红人,那嘚瑟的呦 !!!谁怼了他,那就不得了!实在是无力再吐槽了。
    而作为程序猿的我们,代码质量以及效率才是我们该追求的,不多说了,上demo才是硬道理!!!

    IMG_0440.JPG

    <一>项目搭建

    首先先看

    12345.gif

    AppDelegate

    放的是AppDelegate.h(.m)文件,是整个应用的入口文件,所以单独拿出来。

    Base

    工程主体类, 日常大部分开发代码均在这里,又细分了好多次级目录。
    Base( 基类 (整个框架的基类))包括:

    • ControllerView
      • BaseNavViewController(通过appearance统一设置nav的相关设置)
      • BaseTabBarViewController(设置TabBarVC)
      • BaseUIViewController(主要分三块需子类重写:setupNav ,loadDataFromNetwork,setupUI)
      • BaseWebViewController(加载网页)
      • BaseTableViewController(设置tableView和刷新)
    • Model公共BaseModel (将第三方的进行封装,子类继承于BaseModel)
    • Views公共View (封装的一些常用的View)

    Classes

    以TabBar名字命名(一般是大概在3,4,5个左右,主要看产品需求),这里只拿其中一例作为说明。

    例如其中首页部分:


    Snip20170720_18.png
    123456.gif

    补充
    作为一个程序猿不管是刚入门也好,是大神也罢,代码规范是一定有的,并让这种规范成为你的习惯,这样有利于其他同事查看,也方便自己看,别自己下次看的时候,自己都看不懂了,那就😓了。

    Public

    主要放一些通用的东西,包括公用的cell和控制器、数据库等等

    Expand

    • Category(UIKit和UI)
    • Macros(所有的接口(ConstUrl)、枚举以及通知名称(Const)、配置友盟账号、主题颜色、打印、环境(开发、测试、预发布、正式) Macros)
    • Network(网络请求包括配置公共参数)
    • Tools(MD5加密等等)

    SDKFile

    第三方的类库/SDK(Wechatpay/Alipay/UMSocial等等)

    Vender

    第三方的类(Reachability/FLAnimatedImage/SDCycleScrollView等等)

    Resourse

    主要包括(Image和plist文件)

    Supporting Files

    放XX.pch文件

    补充
    之所以把所有的接口写都在ConstUrl中,是因为之前吃过这么一次亏,后台之前很乱,之前都是以.方式进行拼接,后面改成以/的方式进行拼接。
    例如

    之前
    doindex.getIndexlbt
    之后
    index/getIndexlbt
    

    <二>代码规范

    • 命名规范(驼峰式)

    • Url统一命名规范
      ConstUrl.h

    UIKIT_EXTERN NSString  * const kGetActivityInfoUrl;
    

    ConstUrl.m

    NSString  * const kGetActivityInfoUrl = @"activity/getActivityInfo";
    
    • 枚举和通知统一在Const中写
      Const.h
    /********************通知**************/
    //登陆成功
    UIKIT_EXTERN NSString  * const kLoginSuccessNotification;
    
    /*----------------------------------枚举----------------------------------*/
    //国家 0中国  1美国 2泰国  3越南
    typedef NS_ENUM(NSUInteger,LYCountryType){
        LYCountryTypeChina = 0, //中国
        LYCountryTypeUSA = 1, //美国
        LYCountryTypeThailand = 2, //泰国
        LYCountryTypeVietnam = 3, //越南
        
        
    };
    

    Const.m

    /********************通知**************/
    //登陆成功
    NSString  * const kLoginSuccessNotification = @"kLoginSuccessNotification";
    
    

    相关文章

      网友评论

        本文标题:ios 之闲谈项目搭建结构以及代码规范

        本文链接:https://www.haomeiwen.com/subject/iludkxtx.html