苹果官方代码规范
介绍
为了方便开发者开发应用程序,苹果决定各位开发系统框架的大佬们讨论一下,订个规则,使用cocoa framework 编程的iOS开发者们如何优雅的写代码。
一 命名基本原则
1. 基本原则
- 清晰原则
简洁,简单明了,其实就是你要干啥,说清楚。
代码不是给你自己写的,是给后来维护代码的那个Ta写的,或许是你又或许不是你。是你的话,你过半年再回头看看自己写的代码,当时我在想啥?what?恨不得抽自己?忍住...
比如:插入一个对象,你要插入啥?一个苹果?一个橘子还是香蕉?
插入到哪里,插在花瓶里?盘子里?还是碗里?
插入一个对象(xxxType)到数组的index(XXX)位置
-
不要缩写
为什么不要缩写?因为有的单词缩写容易混淆,是截取前四位还是每个单词的首字母,都有可能重复,导致意义不明确。
-
其实不是不让你缩写,有些是缩写是可以的,比如约定俗称的那些。
-
避免模棱两可
如果,别人看到一个接口,有两种以上的解释,那么重写!!!
-
惯例
约定俗称的一些东西,主要是区分,请意会
区分多个同一个类的对象的属性使用基本数据类型,
给NSNumber (数据包装类型)赋值使用对象类型。
-
No Self Reference
这个比较晦涩
NS 为前缀已经是对象类型了,后面还加一个Object,冗余
- 用一个看似是对象类型的名称代表位确实有点不符合常规,不过通知就经常这么做。
2. 前缀 - 前缀对由于框架开发挺重要,主要是功能辨识,所有者区分。NS代表 NeXTSTEP
- 前缀命名规则,两个或者三个字母(通常是公司或者项目名称或者作者单词缩写),需要注意的是不要使用下滑线作为前缀
- 类名,协议名,常量,或者typedef structures 枚举 均可以使用前缀,但是方法名,结构体的一个字段就不要用了。方法在类定义的时候编译器会分配一个。结构体名已经有了前缀,某一个字段使用完全是多余。
排版规范 - 函数(方法)命名,使用多个单词,驼峰命名法,不要使用标点符号和下划线作为前缀或者方法的一部分
-
类名前缀 相关联或者功能相似的类使用相同的前缀,
- 不要使用下划线作为函数名的前缀,因为cocoa framework 系统会在私有方法前加下划线,如果自定义类名和系统某些函数名重复,会出现错误(重载)。成员前缀可以加下划线。