iOS Coding Style Guide 编码规范

前言

好的编码习惯是一个程序员的开始,编码规范应该是每个程序员最基础的职业素养。我还记得我刚接触编程开发的时候,一位资深程序员对我说的话,“你的写代码可以毫无扩展性、健壮性、结构性, 你写的代码也可以bug满天飞,甚至没有完成需求,但是你首先要解决的就是你写出的代码要让我看着很舒服,编码要规范, 其次你才能去想其他的东西”。 这些话,让我第一次认识到编码规范的重要性,也真真切切的在这上面下足了功夫, 虽然目前自己写的代码仍不能尽善尽美,可见编程之路漫漫其修远兮 吾将上下而求索,与君共勉之。
网上关于编码规范的文章多如牛毛, 自己平时也会看一些写的很好文章。 本可不写, 但根据自己的理解还是有必要写一篇,一自己加深印象,二团队也确实需要, 毕竟代码规范对于多人开发及后期维护的重要性不言而喻。

命名规范

编码基础原则

我们尽可能遵守 Apple 的命名约定, 其推荐使用长的,描述性强的方法和变量名,使其阅读起来更加清晰易懂。不能随意使用缩写,导致其他人员阅读代码困难。更不能用些汉语拼音,甚至缩写。The coding guide for cocoa

驼峰命名法

针对属性,变量,方法等均采用小写字母开头的驼峰命名准则。驼峰命名法

前缀

类名,协议名等都应该有前缀,根据 Apple Guide 建议类名前缀应该使用 2 个英文以上最好,因为 Apple 写的框架都是直接使用 2 个英文字母开头, 当然使用 3 个字母 能有效防止类名重复影响工程。而前缀则以项目名字缩写为最好,例 山西证券 英文 Shanxi Security 那 文件名应以 SS 为前缀 例 SSHomeViewController

方法命名

通用规则

使用小写字母开头,后面嵌套连接的字母使用大写开头。
对于采取动作行为的方法,使用动词开头,但是不要直接使用 do或者does,如果该方法返回接收方的属性,不要用get
推荐:

- (NSSize)cellSize;

不推荐:

- (NSSize)getCellSize;

假如方法名过长的时候可以采用每个参数独占一行的规则,并保持每个参数分号 : 对齐的方式排列。 注: 参数越少耦合越低 出错率也越低 尽量写少参数方法
推荐:

- (BOOL)registerPlatformWithType:(SZShareType)type
                           appId:(NSString *)appId
                   universalLink:(NSString *)universalLink;

不推荐:

- (BOOL)registerPlatformWithType:(SZShareType)type  appId:(NSString *)appId universalLink:(NSString *)universalLink;

实例方法和类方法 (-/+) 符号后面应该保持一个空格, 如: - (void)。

推荐:

+ (instancetype)defaultManager;

不推荐:

+(instancetype)defaultManager;
构造器方法

你可以用情态动词(前面有can, should, will等动词的动词)来阐明意思,但不要用do或does
推荐:

- (void)canRemoveObject;

不推荐:

- (void)doRemoveObject;
代理方法命名

推荐:

- (void)headerView:(SZHomeHeaderView *)headerView didSelectedItemAtIndex:(NSInteger)index;

不推荐:

- (void)didSelectedItemAtIndex:(NSInteger)index;

你可以用will should did 来表示将要发生的事情 或者已经发生过的事情
例:

- (void)scrollViewWillBeginDecelerating:(UIScrollView *)scrollView; 
- (BOOL)scrollViewShouldScrollToTop:(UIScrollView *)scrollView;  
- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView;     
其他方法命名

如果你子类化一个Cocoa框架类(比如NSView或UIView),你想要绝对确保你的私有方法有不同于超类中的名字,你可以添加你自己的前缀到你的私有方法
例:

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