惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

WordPress大学
WordPress大学
Jina AI
Jina AI
小众软件
小众软件
GbyAI
GbyAI
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
博客园 - 【当耐特】
D
DataBreaches.Net
腾讯CDC
V
Visual Studio Blog
博客园 - 叶小钗
B
Blog
Apple Machine Learning Research
Apple Machine Learning Research
T
The Blog of Author Tim Ferriss
S
SegmentFault 最新的问题
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
V
V2EX
博客园 - 三生石上(FineUI控件)
云风的 BLOG
云风的 BLOG
The Cloudflare Blog
MongoDB | Blog
MongoDB | Blog
有赞技术团队
有赞技术团队
U
Unit 42
博客园 - 司徒正美
博客园 - 聂微东

陈少文的网站

巨变与机遇的未来十年 Kubernetes 平台管理软件压力测试方案 使用镜像部署 Hexo 静态页面 终于等到你 - GitHub 镜像仓库服务(ghcr.io) 一起来学 Go --(6)Interface 一起来学 Go --(5)Goroutine 和 Channel 什么是函数式编程 如何在 Kubernetes 集群集成 Kata 柯里化与偏函数 使用 PyGithub 自动创建 Label 软件产品是团队能力的输出 Helm 2 、Helm 3 比较 IoT 变现 Kubernetes 中的 DNS 服务 国内的 Helm 镜像源 Harbor 使用自签证书支持 Https 访问 DevOps 工具链之 Prow 如何使用 kfctl 安装 Kubeflow VS Code 无法下载 Go 插件的工具包 工程师更应具有服务精神 你不知道的 Docker 使用技巧 使用 Docker 运行 Tensorflow 论中国 什么是左移 如何清空 Git 仓库全部历史记录 一禅小和尚 有风吹过厨房 时间的玫瑰 如何在 CentOS 安装 GPU 驱动 开发 Tips(19)
如何更好做 CodeReview
微信公众号 · 2018-01-30 · via 陈少文的网站

1. 如何更好做 CodeReview

要求事项
代码提交者的要求小粒度
原子性
有注释
工具检查
对代码 Review 者的要求一看规范
二看逻辑&性能
三看设计
对团队的要求温故而知新

2. 制定CodeReview CheckList

要求事项
命名变量名字
类命名
方法命名
参数命名
代码长度类长度不超过1000行
方法长度不超过100行
条件嵌套避免多个 If,循环语句嵌套
避免判断条件过长
参数、返回值检查参数个数建议不大于 3
参数合法性判断(如判断 null ,容器长度等)
返回值合法性判断(如判断 null,容器长度等)
复用封装好的代码接口是否有使用公共代码库,如 Kresource,Kcontent,KPackageManager等
注释类、关键步骤,对外接口是否有注释

3. 看逻辑&性能

要求事项
主线程逻辑检查文件、联网等耗时操作避免在主线程执行
异常阈值检查访问频率是否设置,是否有上限
文件大小、个数是否有上限
联网流量是否有上限
多线程问题是否产生脏数据
同步锁是否使用正确
内存泄露资源 IO 流是否关闭
图片资源是否回收
列表的对象是否重用
IPC 检查频繁 IPC 会导致卡顿

4. 设计

要求事项
健壮性边界条件检查
容错处理
安全性关键功能是否有权限校验机制(root 相关接口)
单一职责一个类只干一件事情
代码耦合面向接口编程
消灭重复代码
开闭原则

5. CodeReview 要点

  1. CodeReview 目的
    代码质量,增进交流,互相备份,技术氛围,文化传承

  2. 如何做 CodeReview

  • 必备要素
    • 代码规范
    • 检视指南
  • 执行要点
    • 持续坚持
    • 总结优化
    • 激励机制
    • 高质量发起
    • 高效率 Review