iOS|iOS-代码细节优化一

iOS|iOS-代码细节优化一

代码细节优化是所有开发者都很重视并锻炼的能力 , 这也是为什么多数团队坚持做代码Review的原因 , 今天我们就来聊一聊代码细节的优化 。

命名法则
首先要谈的就是在代码书写方面各种命名的规则 , 团队中也要先统一代码规范 , 这是很有必要的 , 代码规范可以使项目的代码看起来更加美观整洁 , 降低沟通的成本 , 避免很多低级错误 。
变量命名我们都知道常用的变量命名法则有三种:驼峰命名法、下划线命名法、帕斯卡命名法 。

  • 驼峰命名法:使用最广的命名法 , 命名由一个单词或多个单词组合而成 , 首字母小写其余单词首字母大写 , 如:“myType”;
  • 下划线命名法:每个单词间使用下划线“_”分割 , 所有字母均小写 , 如:“my_type”;
  • 帕斯卡命名法:每个单词的首字母均大写 , 与“骆驼命名法”的区别仅在于前者的首字母大写 , 后者的首字母小写 。 如:“MyType” 。
这里需要注意变量名尽量不要使用缩写 。
宏的命名我们编码中经常使用宏来表示一个常量 , 通常会把单词的所有字母大写 , 目的是为了告诉开发者这是一个宏 , 而不是一个普通的变量 , 而如果宏的名称由多个单词组成 , 通常是每个单词之间使用下划线分割开 。 我们可以点开系统提供的类的头文件 , 看到iOS SDK中的绝大多数宏也是按照此规则命名 。
项目名称使用帕斯卡命名法Xcode项目的命名推荐使用帕斯卡命名法则 。
类名添加前缀在构建应用程序时 , 有可能会有部分代码用于后续的项目 , 或发布出去供他人使用 , 那么在别人使用你的类库或者你引用其他人的类库时很有可能出现相同命名的情况 , 从而引发出“重复符号错误” , 为了避免这种情况发生 , 我们应该习惯于给自己的类添加一个前缀 , 可以是公司名称的缩写 , 也可以是个人姓名的缩写 , 还有可能是框架名称的缩写 。
这里需要注意的是 , 推荐大家使用三个字母以上作为类的前缀 , 很多开发者都习惯于使用两个字母作为前缀 , 但是苹果公司保留了两个字母作为类前缀的权利 , 大家可以发现苹果公司的类都是以框架名缩写并且都是两个字母作为前缀的 , 为了避免苹果公司将来新发布的框架缩写和你的前缀发生冲突 , 所以采用三个字母以上的前缀命名方案 。 不仅类名如此 , 类目及延展或者自定义的结构体等同样推荐使用前缀 。
类目方法及私有方法添加前缀Objective-C这门语言的语法在其他语言的开发者眼中一直是很怪异的语言 , 它的方法名除了使用了方括号 , 方法名长的有够过分 , 但是正是因为这个特点 , 我们阅读Objective-C代码的时候就像阅读英文语句一样通俗易懂 。 尤其是很多人喜欢使用词汇的缩写来命名方法 , 命名缩写只用于通用专业术语 , 如 URL , 不可自创命名缩写 , 如 str、msg 。 命名宁可长一些 , 也不要难于理解 。
如果我们在编码中使用类目给一些系统的类拓展方法 , 那么推荐给这些方法添加前缀 , 这样可以避免和这个类的私有方法或者将来系统可能拓展的方法出现方法名相同的冲突 。
另外在项目编码中 , 很有可能会改变我们现有的方法名 , 如果我们更改的是在.h文件中的方法 , 那么会影响到外部类的使用 , 很有可能这个外部类的代码是其他开发者负责编写的 , 然而他不知道你的修改操作 , 就需要及时沟通 , 如果更改的是私有方法的话 , 那么就无所谓了 , 你可以随意更改而不会影响到其他人 , 所以推荐把私有方法添加一个特殊的前缀 , 我们在修改这个方法时通过有无这个前缀来确定修改后所带来的影响 。 苹果的私有方法是使用下划线作为前缀的 , 所以我们需要避免这种前缀命名防止和系统方法命名冲突所带来的一些莫名其妙的错误 。