每个程序员都有自己的代码规范,因为服务的公司不同,每家公司各有要求,一旦形成了一种习惯很难改变过来。不过我想大体上很多规范是必须要求的而且偏差不会太大。代码规范说起来容易,实行起来就难了。我只是以我个人观点来说说我之前公司以及自己个人习惯风格。
1、注释,我个人觉得这是最重要的一点,必须要有注释。即使是自己所写的代码,记性再好的人时间一长很容易忘记,一旦过了很久进行版本迭代要和之前模块衔接上时,自己还要重新去看前面的代码,研究一下,这样不能做到敏捷开发,耽误项目进度。再者,如果是别人接手你的项目,那样别人更难找到你所写代码的意思,还需慢慢断点查看猜测,这样还不如自己再重新写一个项目。注释就是让别人一看就知道你那段代码是做什么的。这样才方便别人和自己维护。
(1)首先,不同的方法块可以使用#pragma mark - 来进行注释,想要查找方法时在类文件中选择。此外还可用 VVDocument插件只需三个斜杠///即可,方便快捷。
(2)对于一些比较复杂的逻辑,我个人喜欢进行注释一下,方便后来查看理解
(3)如果合作开发,修改了别人模块的代码,最好说明一下,为何修改以及修改人;一些地方要注释这段代码是做什么的(每个文件开头对于版权描述,还可以描述一下该类文件的功能)
2、命名规则,必须驼峰命名法。
(1)变量名首字母小写,之后每个单词首字母大写,每个变量名名字必须要让人一看就知道是为何而创建的,对于多个同样变量时,如:mainView、datePicker、loginVC等,严禁使用1、2、3等数字去命名。
(2)对于一些@property需要使用一些关键字修饰,如nonatomic,retain,copy,assign等
(3)实例变量声明时变量名前面加下划线“_”,局部变量不用加。(个人之前喜欢用,之后看着不好看一笔略了)
(4)方法名字也要一目乐然,让人知道此法用来做什么。携带参数是否需要使用"and"、"with",看了一些别人博客貌似都不需要。
3、排版。
(1)一个方法有多个参数时,以冒号分行对齐
(2)“+”、“-”和返回值之间空一格
(3)赋值语句前后空一格
4、单例 (线程安全),在ARC下,基于GCD
1. + (instancetype)sharedInstance {
2. static id sharedInstance = nil;
3. static dispatch_once_t onceToken;
4. dispatch_once(&onceToken, ^{
5. sharedInstance = [[self alloc] init];
6. });
7. return sharedInstance;
8. }
5、第三方库导入
(1)手动导入需要配置文件,以及导入其他一些框架(第三方更新需要手动重新导入)
(2)CocoaPods管理第三方库(自动更新)
6、确定了APP根视图入口,不能改变这个根视图,在界面跳转尤其注意。建立一个BaseNavigationController或者BaseController,以此为基类,使用共通的,如果需要扩展方法,另写或重写。
7、纯代码或者xib文件统一,纯代码一般适配使用masonry,xib使用Auto-Layout。(公司要求)
8、对于数组、字典,先判断一下,有就移除元素,否就创建。
if (!result_Arr) {
result_Arr = [[NSMutableArray alloc]init];
}else{
[result_Arr removeAllObjects];
}
9、项目工程下,在其中创建的group是虚体,在文件夹下并不存在,在项目文件下创建文件夹并建立关联将其添加到项目工程中,其所属类文件在其下级创建。
10、对于一些通用的方法,可以宏定义或者单独建立一个Common类文件进行调用;一些重用的代码可以放在一个方法中,使用时调用即可
11、对于创建类文件时,是否需要添加公司名或项目名缩写大写字母为前缀,依据公司要求而定。
12、对于需要在沙盒中存储路径,一般放在Documents目录下,如果层级目录多,分级创建。
13、Git使用,每次提交运行无误之后,提交最好打上标签,说明此次修改了些什么。