开发规范的目的是保证统一项目成员的编码风格,并使代码美观,易于项目维护。
1.项目简介
采用 MVC 框架开发,开发语言为 Objective C。
2.项目结构
2.1工程目录
- AppDelegate、Assets、Info.plist等工程入口及配置文件
- Tools 自定义工具类目录
- Views 自定义View视图
- Networking 网络请求封装
- SDK手动导入三方SDk目录
- Controllers 包含所有模块目录
- Base 基类
- movSource 本地图片文件目录
2.2 MVC业务逻辑(MVVM多一个vm)
类 | 说明 | 备注 |
---|---|---|
controller | 1.处理页面展示逻辑,提示框封装在基类 BaseViewController 中 2.页面跳转必须在 controller 中进行,不要直接放在 view 中 3.当 UITableView 或者 UICollectionView 的 dataSource 包含较多代码时,可以为该 controller 新建一个 dataSource 类 | |
viewModel | 1.逻辑计算(如订单支付页面, 应收金额计算的计算逻辑)2.网络请求,JSON数据 → 数据模型(JSON 解析) | 适合业务逻辑复杂场景 |
view | 对页面相关联的 view 进行封装,不要在 controller 中直接添加单个控件 | |
model | 数据模型,项目中数据传递建议使用解析后的 model, 不要直接传递 Json,不利于代码阅读及理解 |
3.代码结构
在controller中代码使用
#pragma mark -- 备注
或// MARK: -- <#注释#> --
标记进行分段,便于代码快速查找
4.命名规则
- 类名、Protocol、结构体和枚举加上前缀 ——
FY
- 全局常量命名使用 f 前缀 + UpperCamelCase 命名
4.1 类、结构体
controller、Struct、enum 采用大驼峰(UpperCamelCase)命名方式, 目录结构可以采用图示
4.2 成员变量、属性
- 采用驼峰式命名(lowerCamelCase),并使用完整的单词
- 不建议使用 tempArr、array1、dic1 之类的命名
4.3 方法名
- 以小写字母开头,每一个后续的单词首字母大写,使用完整的单词
- 方法名不要随意命名, 命名要精简且语义清晰(可读性高),不能为了精简牺牲可读性
4.4 图标文件命名规则
图标命名规则采用单词小写加下划线的方式命名,前缀统一为icon_,对应大小的图标名称后加上@1x、@2x、@3x后缀,表明该图标对应几倍图
4.5 控件命名规则
控件类型 | 后缀(控件全称) | 示例 |
---|---|---|
UITextView | TextView | contentTextView |
UILabel | Label | subtitleLabel |
UISlider | Slider | progressSlider |
5.代码注释
清晰的代码注释更有益于代码阅读、后期代码维护、bug修复。
- 定义的属性、方法等,采用快捷键 Command + Option + / 进行标注
- 注释分为多行注释和单行注释:
单行注释
//单行注释
多行注释
/**
* 插入一条数据(推荐使用)
* @param model 需要插入Model
* @param tableName 表名,不可以为nil
* @return 是否插入成功
*/
- (BOOL)insertWithModel:(id _Nonnull)model tableName:(NSString * _Nonnull)tableName;
6.其他
- 对于工程内引用的第三方库,建议进行二次封装,便于后期做迁移
- 在闭包中使用 self 时使用捕获列表
[weak self
]避免循环引用,闭包开始判断 self 的有效性 - 表示单例的静态属性,一般命名为
shared
或者default
- 尽量消除
warning
- 三方库管理工具:
CocoaPods
- 代码托管工具:
SVN
每次提交代码 remark要写详细! - IDE:
X-Code
版本号:Version 15.3