美文网首页
iOS Coding Style Guide 编码规范

iOS Coding Style Guide 编码规范

作者: 一个什么都不懂的程序猿 | 来源:发表于2020-09-18 10:34 被阅读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;
    

    相关文章

      网友评论

          本文标题:iOS Coding Style Guide 编码规范

          本文链接:https://www.haomeiwen.com/subject/mavdyktx.html