1. 如何更好做 CodeReview
要求 | 事项 |
---|---|
代码提交者的要求 | 小粒度 原子性 有注释 工具检查 |
对代码 Review 者的要求 | 一看规范 二看逻辑&性能 三看设计 |
对团队的要求 | 温故而知新 |
2. 制定CodeReview CheckList
要求 | 事项 |
---|---|
命名 | 变量名字 类命名 方法命名 参数命名 |
代码长度 | 类长度不超过1000行 方法长度不超过100行 |
条件嵌套 | 避免多个 If,循环语句嵌套 避免判断条件过长 |
参数、返回值检查 | 参数个数建议不大于 3 参数合法性判断(如判断 null ,容器长度等) 返回值合法性判断(如判断 null,容器长度等) |
复用封装好的代码 | 接口是否有使用公共代码库,如 Kresource,Kcontent,KPackageManager等 |
注释 | 类、关键步骤,对外接口是否有注释 |
3. 看逻辑&性能
要求 | 事项 |
---|---|
主线程逻辑检查 | 文件、联网等耗时操作避免在主线程执行 |
异常阈值检查 | 访问频率是否设置,是否有上限 文件大小、个数是否有上限 联网流量是否有上限 |
多线程问题 | 是否产生脏数据 同步锁是否使用正确 |
内存泄露 | 资源 IO 流是否关闭 图片资源是否回收 列表的对象是否重用 |
IPC 检查 | 频繁 IPC 会导致卡顿 |
4. 设计
要求 | 事项 |
---|---|
健壮性 | 边界条件检查 容错处理 |
安全性 | 关键功能是否有权限校验机制(root 相关接口) |
单一职责 | 一个类只干一件事情 |
代码耦合 | 面向接口编程 消灭重复代码 开闭原则 |
5. CodeReview 要点
CodeReview 目的
代码质量,增进交流,互相备份,技术氛围,文化传承如何做 CodeReview
- 必备要素
- 代码规范
- 检视指南
- 执行要点
- 持续坚持
- 总结优化
- 激励机制
- 高质量发起
- 高效率 Review