iOS之命名规范+编码规范

前言

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

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 
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,088评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,715评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,361评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,099评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 60,987评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,063评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,486评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,175评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,440评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,518评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,305评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,190评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,550评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,880评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,152评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,451评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,637评论 2 335

推荐阅读更多精彩内容

  • iOS编程规范0规范 0.1前言 为􏰀高产品代码质量,指导广大软件开发人员编写出简洁、可维护、可靠、可 测试、高效...
    iOS行者阅读 4,418评论 21 35
  • iOS开发规范 引子 在看下面之前,大家自我检测一下自己写的代码是否规范,代码风格是否过于迥异阅读困难?可以相互阅...
    BGDane阅读 1,352评论 1 4
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,490评论 18 139
  • 1、引言 数据库设计过程中表、字段等的命名规范也算是设计规范的一部分,不过设计规范更多的是为了确保数据库设计的合理...
    SnowflakeCloud阅读 40,875评论 0 48
  • 柳暗花明又一村 睡梦中被一缕阳光刺醒 习惯性的打开手机 点开微信 发现几天前沉底的文章 今天又莫名其妙的被选了上去...
    一一KK阅读 420评论 1 0