前言

遵守规范也是让代码更清晰明了,易读,易用,易维护,可以更好的适应团队开发。自己看着也是赏心悦目,何乐而不为呢。

1.基本准则

1.1编写清晰

简单明了的命名最好,不要用单词的简写,尽量用单词的全称。可以看看苹果的API格式,仿照苹果的命名,尽量用英文,而不是拼音。

1.2一致性

比如方法名的功能类型的一致性,比如获取某些数据 - (NSString *)getName,- (NSString *)getAge 中的get;或者设置数据 - (void)setName,- (void)setAge 中的set。统一方法名可以让人一看这方法就知道是干什么用的,提升开发效率。

1.3驼峰原则

  • 大驼峰原则:每个单词的首字母大写(UserNameTextField)
  • 小驼峰原则:第一个单词首字母小写,其余都大写(userNameTextField)

2.命名规范

2.1类命名

类的命名是采用大驼峰原则,如
UserLoginViewController
在实际开发中,一般会在类名前面加个前缀:
OYUserLoginViewController
加统一前缀方法如下图:

设置完后,每次在创建类的时候会自动添加前缀。
User            →  用户
Login           →  登陆
ViewController  →  控制器
这个类的用途就一目了然了其他例子:OYUserModel,OYTitleView,OYNetManager。。。应用级别的类名(需要在其他项目中用到的类),可以不使用前缀或者使用自定义前缀
即为:PhotoBrowser或者XXPhotoBrowser

2.2分类命名

UIView+OYFrame 或者 UIView+OYExtension
前者是对UIView这个类做的扩展,OY是前缀,Frame算是具体化功能,对Frame获取。比较清晰。
后者也是对UIView这个类扩展,但是并没有写明具体功能,可以在里面添加关于UIView的很多扩展。具体功能可以在.h文件里注释。文件较少易于管理。
二者的选择看个人喜好了

2.3方法命名

方法的命名是采用小驼峰的原则,如
- (XXModel *)modelWithDictionary:(NSDictionary *)dictionary;
此类命名可以模仿苹果提供的API,看见方法名大概可以猜出开是做什么的。注意参数名也是小驼峰式的。
代理方法仿照苹果API。

2.4变量命名

普通变量采用小驼峰原则,
NSInteger userCode;
成员变量要在前面需要加下划线'_'
@interface ViewController () {NSString *_sex;NSString *_birthday;NSInteger _nameCount;
}
全局变量我一般在末尾加个下划线'_'
NSInteger userCode_;

2.5常量命名

常量(宏、枚举、全局常量、局部常量等)
1. k + 大驼峰    kUserCode
2. 前缀 + 大驼峰 OYUserCode
3. 单词大写加'_'  USER_CODE枚举:下面是个我写的启动页广告点击事件的枚举,可以参考下
typedef NS_ENUM(NSInteger, OYLaunchImageAdViewActionType) {OYLaunchImageAdViewActionTypeAd,                //点击广告OYLaunchImageAdViewActionTypeSkip,              //点击跳过广告OYLaunchImageAdViewActionTypeTimerOver,         //广告定时器结束
};

2.6文件夹命名

创建文件夹最好创建实体文件夹,找到工程目录,创建相应文件夹并拖入工程。
文件夹命名使用相应模块的英文,首字母要大写。

分享下Xcode8的两个注释快捷键
- command + / 所选行会被注释掉
- command + option + / 在方法名或变量名的所在行或上一行使用,会自动填充注释段,可输入方法参数的意思或者作用。

3.编码规范

  1. 删除多余的空行
    1.1 所有的方法之间空一行
    1.2 所有的代码块之间空一行
  2. 删除多余的注释
    2.1 删除不用的代码
    2.2 删除没有意义的注释
  3. 删除多余的方法
    3.1 如果有方法一直不会用到,请删除(除工具类)
    3.2 没有执行任何业务逻辑的方法,请删除或给予注释
  4. 删除多余的资源或文件
  5. 添加必要的注释
    5.1 所有 .h 文件中的property 需要给出清晰注释,非必要变量请勿防止出现在 .h文件中
    5.2 比较大的代码块需要给出注释
    5.3 所有自定义的方法需要给出注释
    5.4 所有代码中出现的阿拉伯数字需要给出注释
    5.5 程序中出现加密/解密 逻辑的操作地方,需要给出注释说明过程(无论是系统还是自定义)
  6. 尽量少用大段打印,非必要可以注释或删除,尽量消除警告(不影响程序正常运行)
  7. 整体代码风格要统一
    7.1 代码后的’{‘不需要独占一行
    7.2 运算逻辑符和变量之间空一格
    7.3 多用#pragma mark - xxx讲方法分块,#pragma mark与下面的代码之前不要空行
    7.4 遵循一般代码规范,多模仿苹果API

4.通用规范

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 

iOS之命名规范+编码规范相关推荐

  1. Oracle数据库建表 Oracle数据库的统一命名与编码规范

    本文转载自:http://chinaxxren.iteye.com/blog/889590 如有疑问请咨询原博主,谢谢!! 写在前边: 规范是一种习惯,在Oracle数据库中笔者认为表中的字段命名规范 ...

  2. ORACLE数据库的统一命名与编码规范

    1.编写目的 使用统一的命名和编码规范,使数据库命名及编码风格标准化,以便于阅读.理解和继承. 2.适用范围 本规范适用于公司范围内所有以ORACLE作为后台数据库的应用系统和项目开发工作. 3.对象 ...

  3. 解读ORACLE数据库的统一命名与编码规范

    1.编写目的 使用统一的命名和编码规范,使数据库命名及编码风格标准化,以便于阅读.理解和继承. 2.适用范围 本规范适用于公司范围内所有以ORACLE作为后台数据库的应用系统和项目开发工作. 3.对象 ...

  4. mysql schema命名规范_数据库设计 命名及编码规范

    http://blog.csdn.net/seusoftware/archive/2010/04/24/5524414.aspx 引用 一.综述 命名和编码过程中,定义有意义的名称,以易于理解.方便书 ...

  5. Python函数命名-PEP8编码规范的说明及IDE提示的忽略

    对IDE提示的好奇 在使用Python编程时,某函数setMainFrameColor()出现了黄色下划线并有以下信息 Function name should be lowercase less- ...

  6. Java编程规范-编码规范易于维护

    Java编程之Java编码规范(常用)   编写代码的规范对一个程序猿来说是比较重要的,代码写的不规范的话,二次开发的时候,别人真的就看不懂你写的代码,或者说看起来就很费劲,搞不好你也记不起来了,有一 ...

  7. 规范-编码规范总结(微信分销系统)

    为什么80%的码农都做不了架构师?>>>    项目整体架构技术栈 Spring.SpringMVC.MyBatis.MySQL.JSP.OSS.定时器.微信相关接口 项目目录结构总 ...

  8. Oracle数据库命名编码规范

    ORACLE数据库命名编码规范 版本记录: 当前版本: 作 者: 完成日期: 签 收 人: 文件状态: [ ] 草稿 [√] 正式发布 [ ] 正在修改 签收日期: 1. 编写目的 使用统一的命名和编 ...

  9. SQL SERVER数据库命名编码规范

    出处: http://szp930.blog.163.com/blog/static/89688252007106104857647/ 版本记录: 当前版本: 作 者: 完成日期: 签 收 人: 文件 ...

最新文章

  1. 为什么要使用sigmoid,tanh,ReLU等非线性函数?
  2. 图解深度强化学习(简单的)
  3. LeetCode177 第N高的薪水
  4. maven 学习---Maven添加远程仓库
  5. jquery实现上下左右键盘监听_基于 jQuery 实现键盘事件监听控件
  6. NetBeans Weekly News: #125-Nov 17,2010
  7. linux gcc编译模式,在Linux中GCC详细模式输出说明
  8. 剖析《Linux 平均负载:解开谜团》
  9. CSS,文本溢出显示省略号
  10. 专访AWR市场副总裁Sherry Hess:全面发力 深耕中国市场
  11. learning python in the hard way习题6~10的附加题练习
  12. VAF:Variant Allel Frequency简介
  13. Linux中的多路IO转接,转载
  14. 飞车手游显示服务器连接失败怎么办,QQ飞车手游拉取服务器失败 请检查网络稍后重试...
  15. python微信爬取教程_python爬取微信文章方法
  16. linux终端分辨率对应表,Linux下设置终端分辨率,最全的VGA代码和分辨率对照表...
  17. CPU使用率过高咋办?看这里
  18. 项目上线 | 兰精携手盖雅工场,数智驱动绿色转型
  19. Leetcode_172_Factorial Trailing Zeroes
  20. NY8B062D 九齐单片机之ADC(采样值不准的解决办法)

热门文章

  1. windows下TortoiseGit安装教程
  2. 使用GeoServer(GeoWebCache插件)发布ArcGIS切片地图
  3. 乘风破浪会有时,直挂云帆济沧海
  4. 08年4万亿刺激计划分析
  5. netty 丢弃服务
  6. 类似QQ的聊天气泡效果
  7. 忘记自家WiFi密码(用电脑)怎么找回?
  8. 平面设计--构图必学
  9. 状态码(Status Codes)
  10. 腾讯面试,面试官第一个问题是Int占多少字节,程序员不知所措