一,变量命名部分
苹果代码规范(Coding Guidelines for Cocoa)中提到的变量命名规范范围定得比较模糊,为了让代码更加清晰可读,在后期维护时候不需要花费太多精力在“猜”代码意图上面,我觉得有必要进行一些补充。
基础要求:
1,小驼峰原则,如:
NSString* fooBar
2,变量是个名词(以一个有意义的名词结尾):
//错误
NSString* nameForRole;
//正确
NSString* roleName;
这里表达同一个意思,没必要夹一个介词。
//错误
NSArray* dataForShow;
//正确
NSArray* showsRoles; // roles 可以换成 person 或者其他有意义单词
二,方法调用部分
1,解析json时候尽量直接避免使用 integerValue,stringValue,建议写个 category,实现 stringForKey integerForKey 方法返回确定类型。
2,包括但不限于NSDictionary的 setObject: forKey: 时候 必须对 object key 判空,除非参数一定不为空。
3,返回id类型的容器,取出元素之后要对类型进行判断再使用,例如:
Foo* foo = [foos firstObject];
if (![foo isKindOfClass:[Foo class]]) {
return;
}
4,取数组元素必须保证下标不越界
三,注释规范
代码本身应该具备自注释能力,没必要的注释一定不要写,应该写的注释也一定不能不写。注释不应该用来解释“这个是什么”,而应该解释"为什么这么做"。
“这个是什么”,应该在变量命名,函数命名时候做到这些,如果命名时候表达有限,也可以适当写上注释补充说明。
"为什么这么做",例如在写算法逻辑的时候,函数命名已经写清楚这个函数的目的,但是运算得到结果的过程可能在别人维护的时候很难理解,加上适当的说明,
在维护时候会提供很大的帮助。
持续更新中,如果你有任何想法或者建议,请邮件给我留言,谢谢 ^_^