zoukankan      html  css  js  c++  java
  • ios开发之--编码及命名规范

    做了几年的开发工作,因为是半路出的家,所以对这块一直都没怎么重视,所以在工作中,出现了很多的尴尬场景,编码和命名的规范是一定得有的,最起码一个团队之间的规范也是很有必要的。面向对象的编程,其实很好理解,具体的操作都是由对象来完成,那么原则上,给对象命名的时候,应该清晰、简洁,让人一看就知道这个对象是负责那块的,话不多说,规范如下:

    一、命名规范

    1 基本原则

    1.1 清晰

    既清晰又简洁的命名最好,但以清晰为主,不要用单词简写(非常常用除外),尽量使用全称。你的命名应符合OC标准,让人一看就知道是什么意思,不要让人有疑问,尽量使用英文而不是拼音。

    1.2 一致性

    做某件事的代码通常都叫这个名字,比如tag、setStringValue,那你也这么叫。在你不确定怎么起名的时候请参照《Apple开发规范》。

    1.3 驼峰原则

    大驼峰(UserNameLabel):每个单词首字母大写      

    小驼峰(userNameLabel):除第一个单词外,其它单词首字母大写

    2 示例:

    2.1 类名:(以登录管理类为例)

    定义:SBUserLoginManager

    SB        : 统一前缀

    User       : 用户

    Login       : 登录

    Manager    : 管理者

    应用级别的类名(需要在其他项目中用到的类),可以不使用前缀或者使用自定义前缀

    即为:PhotoBrowser或者XXPhotoBrowser

    2.2 类别名:(基于UIImageView的网络请求图片类别)

    定义:UIImageView+HPWeb    (类名+标识+扩展)

    UIImageView : 要扩展的类名

    HP : 专属标识

    Web : 扩展功能

    2.3 方法名

    使用小驼峰法,规范的方法名应该看起来像一个完整的句子,读过便知函数作用。

    2.4 变量命名

    使用小驼峰法,为了让你的代码便于其它人了解,请使用单词全名按顺序拼接方式

    普通变量、全局变量 无需添加下划线开头,成员变量需要以下划线开头(查看Objective-C 2.0,@property 和 @synthesize 命名规范)

    2.5 常量(宏、枚举、全局常量、局部常量等)

    定义1:小写k+大驼峰      即为:kUserAgeKey

    定义2:以SB开头            即为:SBUserAgeKey

    定义3:全大写,下划线隔开  即为:USER_AGE_KEY

    用户登录类型

    typedef NS_ENUM (NSInteger,SBUserLoginType){

        SBUserLoginTypeNormal = 0 ,    // 常规登录

        SBUserLoginTypeThirdParty,       // 第三方登录

        SBUserLoginTypeNone,            // 未知

    };

    NSString *const kUserName = @“name”;

    2.6 图片资源文件名

    (1)模块+功能命名法(公共使用:common+功能)

    (2)单词全拼,或者大家公认无歧义的缩写(如:nav,bg,btn等)

    个人中心模块中我的消息按钮示例:personal_btn_my_message

    公共模块搜索按钮示例:common_icon_search(或者common_search_icon)

    二、代码规范

    1 删除多余的空行
         * 所有方法与方法之间空1行
         * 所有代码块之间空1行
    2 删除多余的注释
         * 删除注释掉的代码

         * 删除没有意义的注释
    3 删除多余的方法
         * 如果方法没有使用到,请删除它
         * 如果方法没有执行任何业务逻辑,请删除它或者给出一定注释
    4 删除未被使用的资源文件或者类(除非保留必要)
    5 添加必要的注释
         * 所有 .h 文件中的property 需要给出清晰注释,非必要变量请勿防止 .h文件中
         * 所有自定义的方法需要给出注释
         * 比较大的代码块需要给出注释
         * 所有代码中出现的阿拉伯数字需要给出注释
         * 程序中出现加密/解密 逻辑的操作地方,需要给出注释说明过程(无论是系统还是自定义)

    6 无用类、方法、代码块、打印、警告

         * 无用类、方法、代码块务必删除

         * 请不要存在警告(除非必要)

         * 请将调试的打印函数非必要部分注释或者删除,避免大段打印,影响他人调试

    7 整体代码风格需要统一
         * 代码后面的”{“ 不需要单独占用一行
         * 逻辑运算符 与 代码之前空一格
         * “#pragma mark -” 与下面的代码之前不要空行
         * 遵循一般性的代码规范

    三、iOS通用规则

    1 下面所有规则对第三方类库无约束
         * 所有类、方法、属性等命名,做到见名知意,采用驼峰式命名规则
         * 根据资源类型或者所属业务逻辑对项目资源进行分组,使得整个项目结构清晰明了
         * 整个项目保持一种代码书写风格(这个风格由无锡团队根据自己编码习惯来定),让你的代码变的优雅!
    2. 命名规范
         * 所有类名称以项目工程开头命名,eg:“XP”、“ZJG”、“SZ”
         * 针对不同视图控制器,在末尾添加后缀,eg:
         * UIViewController  后缀添加“ViewController”
         * UIView 后缀添加“View”
         * UIButton 后缀添加“Button”、“Btn”
         * UILabel 后缀添加“Label"
    3. 单页代码最好控制在800行以内,每个方法最好不要超过100行,过多建议对代码进行重构
    4. 相同的逻辑方法定义避免在多个地方出现,尽量将公用的类、方法抽取出来
    5. 删除未被使用的代码,不要大片注释未被使用的代码,确定代码不会使用,请及时删除
    6. 对其他项目中copy过来的代码,根据具体需要更新代码风格,及时删除未被使用的代码
    7. 项目中所有Group或者文件名称(图片名字等),不要使用汉字命名,尽量使用英文命名,国内特有名词可以使用拼音。
    8. 项目中所有Group都需要在项目目录中存在一个真实的目录,Group中的文件与真实目录中文件一一对应。
    9. 请在项目中写必要代码的注释
    10. 请多使用 #pragma mark - Mark Name 对方法进行分组 eg:
         * #pragma mark - View lifeCycle
         * #pragma mark - View lifeTerm
         * #pragma mark - Init methods
         * #pragma mark - Action methods
         * #pragma mark - Common methods
         * #pragma mark - UIActionSheetDelegate
         * #pragma mark - UIImagePickerControllerDelegate
         * #pragma mark - UITableViewDelegate Methods
         * #pragma mark - UITableViewDataSource Methods
         * #pragma mark - UIScrollViewDelegate Methods
         * #pragma mark - UITextFieldDelegate Methods
         * #pragma mark - UITextViewDelegate Methods

  • 相关阅读:
    时间编程
    移动文件流的读写指针---fseek
    Xadmin添加用户小组件出错render() got an unexpected keyword argument 'renderer
    xadmin安装
    Django:Python3.6.2+Django2.0配置MySQL 转载
    gitignore文件不生效
    django图片上传修改图片名称
    python3 提示sqlite模块不存在
    Django-admin列表展示上传图片
    django使用admin站点上传图片
  • 原文地址:https://www.cnblogs.com/hero11223/p/8205772.html
Copyright © 2011-2022 走看看