iOS代码规范

2020-06-09  本文已影响0人  默棉花开

一. 项目结构 

 1.整体结构

2.主要模块结构

 3.模块结构

 二.代码风格 

 1 类名 

  * 类名使用驼峰命名,比如 LTHomeOrderVC 

  * 创建子类,把代表子类的特点部分放在前缀和父类名的中间 

  比如: 

      LTHomeVC (父类) 

      LTTimeHomeVC  (子类) 

  * 在类.h文件尽量少引用其他头文件(可以减少编译时间) 

可以在.h文件中使用 @class 类名;  在.m文件中 使用 #import "类名" 

 2 属性 

* 对外的属性,尽量使用不可变对象(对外公布的属性设置为只读readonly,在.m文件内部设置为读写readwrite) 

比如 

* 属性应该尽可能表述性地命名,避免缩写,且是小写字母开头的驼峰命名

* 最好能做好见名知其意

* 一个变量有且只有一个功能,尽量不要把一个变量用作多种用途

* 变量的名称必须同时包含功能与类型

 3 条件表达式 

* 条件过多,过长的时候需要换行,为了代码看起来整齐 

* 每个分支的实现必须使用{}包含

* 条件判断的时候应该是变量在左,条件在右

* 在一个代码块里面有可能的情况时,善于用return来结束异常情况

* switch 语句后面 default分支必须存在,除非是在对枚举进行switch 

 4 方法 

* 方法与方法之间间隔一行 

* 方法最后面的括号需要另起一行,遵循apple的规范,对于其他场景的括号,括号不需要单独换行。比如if的

* 如果方法参数过多过长,建议多行书写,用冒号进行对齐。

* 一个方法内的代码最好保持在50行代码以内,过多会导致阅读体验差

* 一个函数只做一件事,做到单一原则。所有的类、方法设计好后就可以类似搭积木一样实现一个系统

* 对于有返回值的函数,且函数内有分支情况,得确保每个分支都有返回值

* 多个函数如果有逻辑重复的代码,建议将重复的部分抽取出来,成为独立的函数进行调用

* 函数如果有过个参数,外部传入的参数需要检查参数的非空、数据类型的合法性,参数错误做一些措施:立即返回、断言 

 5 控制器的方法及顺序 

 6 宏定义 

* 尽量少用宏定义来定义具体类型的数据,使用 static NSString *const LT_Map_Key_Name = @"LT_Map_Key_Name"; 

7 图片资源命名 

* 项目标识+模块名称+功能+icon 比如: LT_Home_Order_Tap_icon 

 8 版本规范 

*采用A.B.C 三位数命名 比如: 1.4.0 

说明:重大版本增加A的数值,大版本增加B的数值,小版本更新增加C的数值

* iOS适配到iOS8 (虽说现在已经很少有iOS8了)

 9 其他注意事项

* 数组的遍历尽量不要用for,用 

* NSInteger类型的字段,最好抽取一个枚举类型 

* 多个网络请求,采用并发异步网络请求

* 通知、timer、avplayer使用后,记得销毁

* block循环问题,记得打破循环

* 多变量操作,用完即毁的,记得套一层 @autoreleasepool,及时释放变量内存

10 后续如果有,再补充

上一篇 下一篇

猜你喜欢

热点阅读