前言
好的代码规范好处多多,例如便于团队合作,看着舒服,易于阅读,维护方便等等。
头文件
头文件无论引入多少,都应该进行分类并且排序去重(使用automator创建个去重排序脚本),一般分为vc,view,工具类,请求类等等,根据个人喜好。
#import "BESettingVC.h"
#import "BEBindPhoneReciveCodeBeforeVC.h"
#import "BEBindPhoneThirdPartVC.h"
#import "BEBindPhoneVC.h"
#import "BELanguageVC.h"
#import "BESetLogInPasswordVC.h"
#import "BESetNotificationVC.h"
#import "FeedBackViewController.h"
#import "GroupInformationViewController.h"
#import "SetPayPasswordViewController.h"
#import "WebViewController.h"
#import "UnitPicker.h"
#import "VideoFileManager.h"
#import "DeviceManager.h"
宏、类型常量定义
一般紧跟着头文件,尽量少使用宏
#import "DeviceManager.h"
static NSString *kIsFirstInPlayViewController = @"kIsFirstInPlayViewController";
static NSString *kPureModelGuideInPlayViewController = @"kPureModelGuideInPlayViewController";
协议
多个协议不要写在一行
@interface BESettingVC ()
<
UITableViewDelegate,
UITableViewDataSource,
UnitPickerDelegete
>
实例变量
尽量不要使用实例变量,使用属性
属性
和头文件一样,分类排放,我喜欢分成UI和数据两类,业务复杂再分几类。
//UI
@property (weak, nonatomic) IBOutlet UITableView *tableView;
//Data
@property (nonatomic, strong) MineModel *mineModel;
@property (nonatomic,strong) RemindSetingMode * setting;
@property (nonatomic, strong) UserSetting *preferenceSetting;
@property (nonatomic, copy) NSString *cacheDes;
@property (nonatomic, assign) BOOL loadingPaymentcodeStatus;
方法
同一类的方法放在一起,用#pragma mark - <#arguments#>
进行注释。从上到下的顺序我喜欢排列为:初始化方法->dealloc->懒加载->声明周期-> UITableView的代理和协议->其它代理协议->action ->等等。总之要分类明确
私有方法建议以p_
开头,例如p_invalidateTimer
。
其它
- 强制使用xib和sb,禁用frame布局。这里补充一句,设计的尺寸标注一般是按2x来标注的,也就是屏幕物理尺寸的2倍,这个时候一定要保证按2x来标注的尺寸是偶数,这样除2后是个整数。还有cell的尺寸一定要取整,不然cell间会有黑边。
- 一定要进行codereview,保证整个团队代码规范一致,保证代码质量。技术上的债务偿还太难,接手过别人的代码都懂的……
上一篇:UIView局部透明/打洞,点击事件穿透
下一篇:去除编译警告