iOS 开发规范

命名规范

代码中的命名严禁使用拼音与英文混合的方式,更不允许直接使用中文的方式。正确的英文拼写和语法可以让阅读者易于理解,避免歧义。
大驼峰规则:每个单词的首字母大写。例:NameTextField。
小驼峰原则:第一个单词首字母小写,其余都大写。例:nameTextField

文件夹命名

创建文件夹最好创建实体文件夹,找到工程目录,创建相应文件夹并拖入工程。文件夹命名使用相应模块结构分层的英文,Contorller、Model、View、ViewModel、Service

版本规范

采用A.B.C 三位数字命名,比如:1.0.2,当有属于重大更新内容增加A(1.0.2 -> 2.00),小部分更新内容增加B(1.0.2 -> 1.1.0),补丁更新内容增加(1.0.2 -> 1.0.3)

第三方库规范

对开源库的选取,一般都需要选择比较稳定的版本,作者在维护的项目,要考虑作者对issue的解决,以及开发者的知名度等各方面。选取之后,一定的封装是必要的。项目使用cocoapods统一管理开源第三库文件,不需要手动导入和手动添加依赖库。如果第三方不支持cocoapods,可手动导入工程。

项目命名

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

Bundle Identifier 命名

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

类名

类的命名都遵循大驼峰命名。一般是:前缀 + 功能 + 类型。例如:WX + Login + ViewController 由于文件命名太长会影影响的左侧菜单文件名显示所以建议使用VC代替ViewController,VM代替ViewModel但是view、model依然建议使用全称
具体实例:
WXLoginVC 、WXLoginView、WXLoginModel、WXLoginVM、WXLoginCell
封装的基础组件等参照:
WXBaseButton、WXBaseLabel、WXBaseView、WXBaseTextField、WXBaseTextView
封装的功能view、工具类、代理等参照:
WXToastView 、WXTool、WXLoginTool、WXLoginDelegate、WXLoginManager、WXLoginService、WXUIButton+login

常量

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

参数名

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

资源文件命名

全部小写,采用下划线命名法,加前缀区分。所有的资源文件都需要加上。
命名模式:可加后缀small表示小图,big表示大图,逻辑名称可由多个单词加下划线组成,采用以下规则:
模块名
用途
逻辑名称、模块名用途颜色、用途逻辑名称、模块名用途_颜色
login_bg_image_normal

变量和方法

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

常用方法命名

例如:
-(void)initView 初始化、创建、布局当前页面的UI控件
-(void)updateUI 加载 更新 布局
-(void)loadData 加载数据
-(void)loadMoreData 加载数据 一般用于带分页的请求
-(void)updateWithData:(id)data 一般用于根据数据传值(model)更新UI

注释规范

方法注释:方法外部统一用option + command + /,方法内部统一用//注释。如果该方法在.h文件有声明,那么建议把注释写在.h

/**
  吃东西的方法
  @param food 是的食物
 */
- (void)eatFood:(NSString *)food

模型注释:每个model中的,包含的每个属性,都必须要写上相对应的注释,用///注释。阅读者一看这个model,就清楚知道model中的每个字段代表的意思,用来做什么事情的。

@interface WXUserModel : NSObject
/// 用户名
@property (nonatomic, copy) NSString *name;
/// 密码
@property (nonatomic, copy) NSString *password;
@end

编码规范

  • 所有的方法之间空一行
  • 代码之间不允许无故出现大段的空行
  • 所有不易直接看懂的自定义的方法需要给出注释。
  • 代码后的“{”需要独占一行,包括方法之后,if,switch等。
  • 属性的定义请按照上面面例子property之后,空一格,括号之后空一格,写上类名,空一格之后跟上*和属性名。
  • 删除不用的代码,如果有方法一直不会用到,请删除(工具类另做考虑)。
  • 比较大的代码块需要给出注释。
  • 没有执行任何业务逻辑的方法,请删除或给予注释,删除多余的资源或文件
  • 提取方法,去除重复代码。对于必要的工具类抽取。
  • 尽可能的使用局部变量
  • 尽量减少对变量的重复计算。
  • 检测内存泄漏。可使用Instruments分析内存。

你可能感兴趣的:(iOS 开发规范)