iOS Coding Style Guide 编码规范

2020-09-18  本文已影响0人  一个什么都不懂的程序猿

前言

好的编码习惯是一个程序员的开始,编码规范应该是每个程序员最基础的职业素养。我还记得我刚接触编程开发的时候,一位资深程序员对我说的话,“你的写代码可以毫无扩展性、健壮性、结构性, 你写的代码也可以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;
上一篇下一篇

猜你喜欢

热点阅读