zoukankan      html  css  js  c++  java
  • 一份可以落地靠谱iOS开发规范

    列出来的都是个人觉得在团队合作,代码阅读,代码维护中比较重要的一些点,没有什么空格 间距华而不实的东西在里面。涉及 命名规范、编码规范、代码管理规范


    命名规范

    项目名都遵循大驼峰命名。例如:MSMobileStore

    Bundle Identifier 命名

    Bundle Identifier:采用反域名命名规范,全部采用小写字母,以域名后缀+公司顶级域名+应用名形式命名,例如:com.comtop.mobilestore

    类名

    类的命名都遵循大驼峰命名。一般是:前缀 + 功能 + 类型。例如:MS + Web + ViewController

    在实际开发中,一般都会给工程中所有的类加上属于本工程(或加上模块名)的前缀。
    

    常用控件类命名类型对照表(下表中前缀为:MS,如果用到下表中没有列举出来,请去掉UI首字母,遵循实际规则即可。)

    控件名 类型 示例
    UIViewController ViewController MSBaseViewController
    UView View MSBaseView
    UITableView TableView MSActivityTableView
    UITableViewCell Cell MSActivityAppItemCell
    UIButton Button MSSelectButton
    UILabel Label MSSuccessLabel
    UIImageView imageView MSAppImageView
    UITextField TextField MSNameTextField
    UITextView TextView MSSuggestTextView

    其它类相关对照表

    功能 类型 示例
    代理类 Delegate MSAppCommentViewModelDelegate
    业务类 Manager MSAppCommentViewModel
    模型类 Model MSAppCommentModel
    布局类 Layout MSKeywordscollectionViewlayout
    类目 XXX+(范围,例如Extension, Additions 或者功能,例如Frame,Nib,Block) MSUIButton+Additions、MSUIButton+Block

    变量和方法

    变量和方法的命名都遵循小驼峰命名。例如:textVariableStr, - (void)textAction响应事件。

    常量

    宏:小写k+大驼峰 即为:#define kUserAgeKey @“ageKey”

    宏:小写k+大驼峰 即为:#define kUserAgeKey @“ageKey”
    全局常量:工程前+缀全大写,下划线隔开 即为:extern const NSString MW_USER_AGE_KEY

    参数名

    参数名以小驼峰命名,尽量参考苹果原生方法风格编写。尽量可读性好,看到方法名就知道这个方法是用来干什么的。参数应该避免用单个字符命名。例:- (void)setDataImageUrl:(NSString *)imageUrl name:(NSString *)nameStr content:(NSString *)contentStr


    编码规范

    • 尽量使用懒加载,在控制器分类时有提及和要求,其它自定义类按照控制器格式分类,没有的分类不写即可。
    • 对于类型的判断,避免魔鬼数字,使用枚举替代
    • if,case等后面的括号不要省略。
    • 遵循一般代码规范,多模仿苹果API。
    • 建议项目统一使用Masonry和xib结合的方式布局。不允许出现直接设置frame的情况。如果是纯代码的项目,不允许出现xib和拉约束的情况。不建议使用纯storyboard开发。
    • 注意重用,避免copy大段重复代码
    • 建议使用MVVM MVP等代码结构 避免VC过于臃肿难于维护
    • 遵循一般代码规范,多模仿苹果API。

    代码管理规范

    模块化

    • 可复用组件抽成独立的模块,gitlab上建立仓库
    • 业务模块形成独立组件,可独立运行

    Git提交规范

    1.分支拉取是否正确。

    拉分支只允许在develop上拉。

    2.分支合并是否正确。

    2.1 避免出现develop 合并到其他feature分支这种”倒挂合并“现象
    2.2 避免出现feature分支合并到除develop以外的任何分支
    2.3 创建release分支是否正确,release合并是否按照gitflow流程。
    2.4 发版本之后检查是否有不用的feature分支没有删除,避免冗余
    2.5 尽量避免develop merge into develop的情况,使得git流看得更清晰

    3.是否按照规范提交代码

    3.1 不允许直接在master上提交代码

    参考链接:

    iOS开发规范(超详细的)

  • 相关阅读:
    VSCode添加git bash作为默认终端
    Git无法提交branch is currently checked out
    Excel创建下拉列表限制数据有效性
    Windows添加管理员用户
    从Windows10中彻底删除【3D对象】文件夹
    异常处理机制
    泛型
    Java集合
    String、StringBuffer、StringBulider
    System类与Runtime类
  • 原文地址:https://www.cnblogs.com/xiongwj0910/p/10600658.html
Copyright © 2011-2022 走看看