Code review 是什么

对软件源代码的系统性检查,查找软件源代码质量,结构,漏洞等问题。

PS:Code review  ≈ Code inspections ≥ Code walkthroughs(代码走查) 

Code walkthroughs 相当于是 非正式的 Code review 。

怎样执行Code review

1.使用代码静态分析工具。

代码静态分析工具会辅助自己在编码进行代码审查。

以ESlint为例。

流程: (1)安装ESlint工具包。

(2)开发团队组长与成员共同制定ESlint配置文件,并共享此文件。

(3)ESlint配置文件定稿后,开发团队组长与成员共同使用ESlint配置文件,并严格按照此规范编码。

PS:代码静态分析工具帮助开发人员在本地编码时进行初步代码审查,减少在开发团队成员互检时的所需的代码审查项目,提高代码审查的效率。

2.使用版本控制工具(互检)。

考虑到学习成本与执行效率,使用版本控制工具自带轻量级的代码审查的工具是最佳选择。

以GitHub的Pull Request为例。

流程:(1)在GitHub创建好matser主分支、多个feature分支、多个feature子分支。组长设置matser主分支,feature分支只读不可写,feature子分支可读可写。

(一般不会对Matser主分支的代码审查,feature分支、feature子分支需要进行代码审查)

(2)组长安排每位团员的编码模块工作,每位团员进行编码,并且提交代码,再pull request推送到feature子分支。

(3)组长或团员对feature子分支提交的源代码进行轻量级的代码审查。

(4)组长或团员对feature子分支提交的源代码有质疑的进行代码审查,并通知负责该feature的分支的团员进行修改源代码,修复已知的问题。

(5)组长或团员确认对feature子分支提交的源代码通过代码审查之后,由组长负责将feature子分支合并到feature分支上。

(6)当各个feature分支的编码工作完成之后,再合并到Matser主分支。

(7)发布软件之前,进行一次正式的代码审查。(这个过程比较痛苦,代码过多,看情况而定。)

PS:代码审查应该注意以下几点:

        (1)是代码审查,不是浏览代码。(不禁让我想起以前小学老师在抄写汉字的作业本子写的一个大字“阅”。) 

        (2)代码要分量审查,不要大量审查。(大多数的专业人士都这么说,符合实际情况。)      

        (3)代码要互检,不要单检。(三人行必有我师,即便是圣人孔子,也要虚心请教别人。)

        (4)对有质疑的代码进行详细的注释,及时反馈提出问题与优化建议。(不要老是挑完毛病又不告诉别人怎么做,不一定所有人都很聪明,一听就懂,所以建议把优化建议说出来。)

Code review的项目

探究重构代码(Code refactoring)

Code review的优缺点

优点:提高代码质量,促进团队沟通与知识共享,发现代码的潜在漏洞。

缺点:增加工作负担,影响人际关系。

总结:代码审查是个好方法,但不一定适合所有开发团队与软件产品。

           生命周期较短的软件项目或经验不足的开发团队就不建议进行代码审查。

           代码审查建议归建议,勉强没幸福。    

最新文章

  1. 调用webapi 错误:使用 HTTP 谓词 POST 向虚拟目录发送了一个请求,而默认文档是不支持 GET 或 HEAD 以外的 HTTP 谓词的静态文件。的解决方案
  2. MVC5+EF6 入门完整教程九
  3. Vijos1019 补丁VS错误[最短路 状态压缩]
  4. Exif
  5. 一个android的各种控件库
  6. Android中如何查看内存(上)
  7. Java Day 04
  8. Java面试题-Java中的锁
  9. 正确理解javascript的this关键字
  10. ASP.NET 导入EXCEL文档
  11. 菜鸟级springmvc+spring+mybatis整合开发用户登录功能(上)
  12. python 基础-----数字,字符串,列表,字典类型简单介绍
  13. 浅谈python 复制(深拷贝,浅拷贝)
  14. mysql在线修复主从同步
  15. Caffe源码理解3:Layer基类与template method设计模式
  16. html是什么?一个完整的html代码告诉你(完整实例版)
  17. cookie——登录注册极简版
  18. Django——用户认证和判断用户是否登录
  19. 25、LinkedList特有方法
  20. _STORAGE_WRITE_ERROR_

热门文章

  1. Elasticsearch操作索引
  2. React中富文本编辑器的技术选型调研
  3. day 17 模块
  4. day 15 模块 相对导入
  5. MyBatis的Insert操作详解
  6. java springmvc poi 导出Excel,先简单记录,后期会详细描写
  7. qt对plot柱状图颜色设置
  8. js获取两个经纬度之间的角度(0度-360度)
  9. Solr IK分词器配置
  10. 一、json数组的键和值