需求是暂时的,只有变化才是永恒的,面向变化编程,而不是面向需求编程。
不要过分追求技巧,降低程序的可读性。
简洁的代码可以让bug无处藏身。要写出明显没有bug的代码,而不是没有明显bug的代码。
先把眼前的问题解决掉,解决好,再考虑将来的扩展问题。
一、命名规范
1、统一要求
含义清楚,尽量做到不需要注释也能了解其作用,若做不到,就加注释,使用全称,不使用缩写。
2、类名
大驼峰式命名:每个单词的首字母都采用大写字母
==例:==MFHomePageViewController
3、私有变量
私有变量放在 .m 文件中声明
以 _ 开头,第一个单词首字母小写,后面的单词的首字母全部大写。
NSString *_somePrivateVariable
4、property变量
小驼峰式命名:第一个单词以小写字母开始,后面的单词的首字母全部大写
属性的关键字推荐按照 原子性,读写,内存管理的顺序排列。
Block、NSString属性应该使用copy关键字
禁止使用synthesize关键词
==例:==
5、宏和常量命名
对于宏定义的常量
#define预处理定义的常量全部大写,单词间用 _ 分隔
宏定义中如果包含表达式或变量,表达式或变量必须用小括号括起来。
对于类型常量
对于局限于某编译单元(实现文件)的常量,以字符k开头,例如kAnimationDuration,且需要以static const修饰
对于定义于类头文件的常量,外部可见,则以定义该常量所在类的类名开头,例如EOCViewClassAnimationDuration, 仿照苹果风格,在头文件中进行extern声明,在实现文件中定义其值
==例:==
6、Enum
Enum类型的命名与类的命名规则一致
Enum中枚举内容的命名需要以该Enum类型名称开头
NS_ENUM定义通用枚举,NS_OPTIONS定义位移枚举
==例:==
7、Delegate
用delegate做后缀,如
用optional修饰可以不实现的方法,用required修饰必须实现的方法
当你的委托的方法过多, 可以拆分数据部分和其他逻辑部分, 数据部分用dataSource做后缀. 如
使用did和will通知Delegate已经发生的变化或将要发生的变化。
类的实例必须为回调方法的参数之一
1. 回调方法的参数只有类自己的情况,方法名要符合实际含义
2. 回调方法存在两个以上参数的情况,以类的名字开头,以表明此方法是属于哪个类的
==例:==
8、方法
方法名用小驼峰式命名
方法名不要使用new作为前缀
不要使用and来连接属性参数,如果方法描述两种独立的行为,使用and来串接它们。
方法实现时,如果参数过长,则令每个参数占用一行,以冒号对齐。
一般方法不使用前缀命名,私有方法可以使用统一的前缀来分组和辨识
方法名要与对应的参数名保持高度一致
表示对象行为的方法、执行性的方法应该以动词开头
返回性的方法应该以返回的内容开头,但之前不要加get,除非是间接返回一个或多个值。
可以使用情态动词(动词前面can、should、will等)进一步说明属性意思,但不要使用do或does,因为这些助动词没什么实际意义。也不要在动词前使用副词或形容词修饰
==例:==