zoukankan      html  css  js  c++  java
  • iOS项目的命名规范

    一、关于本文档
    1、本文档的书写目的
        《iOS项目的命名规范》的书写目的,在于让后续参加到该项目的iOS开发人员通过阅读该文档,了解在当前iOS项目的代码中的命名要求并严格按照本文档执行,以便保证代码的更好阅读与维护。

    2、本文档的使用范围
        《iOS项目的命名规范》在iOS项目中被强制要求执行。将本文中的WSF或者wsf替换成代表项目的前缀(请用三个大写字母),即可用于其他iOS项目。

    3、本文档的更新负责人
        《iOS项目的命名规范》由本ID和同事共同协商讨论制定,由本ID负责编辑、修改和后续的版本更新。

    二、目录结构

    三、新建【业务模块文件夹】
    1、文件夹的名称需要体现该模块的功能概括。
    比如:支付系统、订单

    2、二级文件夹根据编程设计模式分类命名,需要从下面词语中取词:
    ViewModel、Model、View、ViewController、其他

    四、新建【子类】
    1、类名
    (1)遵循大驼峰命名法。
    (2)WSF+模块概括名+功能分区名+父类的惯用后缀。比如:WSFOrderListVC
    (3)为了整个项目代码的整洁与统一,建议使用List、Detail、Message、TView、Cell、VC、TVC、VM等字样。
    (4)模块概括名一定要是统一的、明确的、唯一的代表模块名称。
    (5)父类的惯用后缀的意思是:如果要从其他框架继承子类,那么必须遵循其命名惯例。比如,继承UIView的子类名称必须以View结尾。

    2、属性名
    (1)遵循小驼峰命名法、避免缩写。
    (2)后缀体现属性的数据类型。比如:orderPriceLabel、orderLimitsArray。
    (3)使用长的、描述性的命名方向。比如settingButton而不是setBtn。
    (4)要求NSString *nameString; 而不是NSString* nameString; 或者NSString * nameString;。

    3、属性定义
    (1)定义属性的参数顺序排序:原子性、读写、内存管理。比如:@property (nonatomic, readwrite, copy) NSString *nameString;
    (2)BOOL类型的属性,需要为其getter方法带is前缀。getter方法放在内存管理限定符前面,比如:@property (nonatomic, readonly, getter=isEditable, assign) BOOL editable;

    4、实例变量名
    (3)下划线开头
    (2)遵循小驼峰命名法、避免缩写。
    (3)后缀体现属性的数据类型。比如:_orderPriceLabel、_orderLimitsArray。

    5、公有方法名
    (1)遵循小驼峰命名法、避免缩写。
    (2)不要使用“and”这个词,它不应该用来阐明有多个参数。

    6、私有方法名
    (1)遵循小驼峰命名法、避免缩写。
    (2)直接父类是Cocoa框架:p_开头。
    (3)直接父类是其他框架:以自己一贯的前缀(小写)+下划线开头或者wsf_。比如:abc_、wsf_。

    7、纯C函数
    (1)遵循小驼峰命名法、避免缩写。
    (2)加上WSF为前缀。

    8、全局变量
    .h文件
    extern NSTimeInterval WSFPersonModelAnimationDuration;
    extern NSString *WSFPersonModelErrorMessage;
     
    .m文件
    NSTimeInterval WSFPersonModelAnimationDuration = 0.3;
    NSString *WSFPersonModelErrorMessage = @“ErrorMessage”;

    (1)遵循大驼峰命名法、避免缩写。

    9、枚举名
    (1)遵循大驼峰命名法、避免缩写。
    (2)使用OC的枚举方式。
    (3)枚举对象名:WSF+枚举范围概括名+Type。比如:WSFAlipayResultCodeType
    (4)枚举种类名:WSF+枚举范围概括名+Type_某种情况名。比如:WSFAlipayResultCodeType_success。

    10、协议名
    (1)遵循大驼峰命名法、避免缩写。
    (2)代理协议:类名+Delegate。比如:WSFOrderListChangedDelegate。
    (3)数据源协议:类名+DataSource。比如:WSFOrderListDataSource。
    (4)普通协议:类名+Protocol。比如:WSFOrderListVCProtocol。

    五、新建【分类】
    1、分类名
    (1)类名+标识前缀+扩展标识。
    (2)遵循大驼峰命名法、避免缩写。
    (3)WSF或者自己一贯使用前缀(大写)+下划线为前缀。比如:NSString (WSF_HTTPManager)、NSString(ABC_HTTPManager)。

    2、方法名
    (1)遵循小驼峰命名法、避免缩写。
    (2)wsf或者自己一贯使用前缀(小写)+下划线为前缀。比如:- (void)wsf_urlEncodedString;、- (void)abc_urlEncodedString;

    六、新建【协议】
    1、协议名
    (1)遵循大驼峰命名法、避免缩写。
    2、方法名
    (1)遵循小驼峰命名法、避免缩写。
    (2)如果是代理协议,以发送代理的对象类名作为代理方法名的开始(去掉类名的前缀,并且遵循小驼峰命名法)。

    七、新建【第三方库的封装】
    (1)手动管理:比如使用MJRefresh框架,需要将它的类名全部加前缀以避免命名空间冲突。比如:命名为WSFMJRefresh。
    (2)pod管理:不需要特殊处理。

    八、新建【常量】
    1、私有常量
    .m文件
    static const NSTimeInterval kAnimationDuration = 0.3;
    static NSString *const kErrorMessage = @“ErrorMessage”;

    2、公开常量
    .h文件
    extern const NSTimeInterval WSFPersonModelAnimationDuration;
    extern NSString *const WSFPersonModelErrorMessage;
     
    .m文件
    const NSTimeInterval WSFPersonModelAnimationDuration = 0.3;
    NSString *const WSFPersonModelErrorMessage = @“ErrorMessage”;

    说明:
    (1)遵循小驼峰命名法、避免缩写。
    (2)在声明公开常量时,也可以使用FOUNDATION_EXPORT替换extern。

    3、常量名称的常用命名方法:若常量局限于某“编译单元”,也就是“实现文件”之内,则在前面加字母k;若常量在类之外可见,则通常以WSF+类名为前缀。

    九、新建【通知】
    1、按照公共常量方法处理。
    2、以Notification为后缀。

    【极力推荐】2018年中秋节两天的良心写作,全面讲解UITextField,总有你不知道的知识:UITextField的使用、介绍、讲解、全解、简介、说明

  • 相关阅读:
    Android -- SEGV_MAPERR,SEGV_ACCERR
    使用预编译库PREBUILT LIBRARY官方说明
    Application.mk文件官方使用说明
    Android.mk文件官方使用说明
    ndk-build官方使用说明
    cocos中lua使用shader实例
    Wifi 攻击科普
    狠心把小米笔记本的操作系统换成了kali
    端口转发正反向链接 NC 和 SSH下的用法
    linux下无回显可将回显发送到服务器
  • 原文地址:https://www.cnblogs.com/cchHers/p/7887579.html
Copyright © 2011-2022 走看看