意思是   代码评审  或是 代码回顾

代码评审是指在软件开发过程中,通过对源代码进行系统性检查的过程。通常的目的是查找系统缺陷,保证软件总体质量和提高开发者自身水平。 Code Review是轻量级代码评审,相对于正式代码评审,轻量级代码评审所需要的各种成本要明显低的多,如果流程正确,它可以起到更加积极的效果。正因如此,轻量级代码评审经常性得被引入到软件开发过程中。

Why we do Code Review(为什么进行)编辑
1、提高质量
2、及早发现潜在缺陷与BUG,降低事故成本。
3、促进团队内部知识共享,提高团队整体水平
4、评审过程对于评审人员来说,也是一种思路重构的过程。帮助更多的人理解系统。
Types of Code Review(代码评审的几种类型)编辑
一般来说,代码评审分为正式代码评审与轻量级代码评审两种
Formal Code Review(正式代码评审)
Fagan inspection(范根检查法):
RolesAuthor/Designer/Coder: 作者
Reader: paraphrases the document(阅读者)
Tester: reviews the document from a testing standpoint(评审员)
Moderator: responsible for the inspection session, functions as a coach(协调人)
Recorder:record detects.(记录员)
Flow
Lightweight Code Review(轻量级代码评审)
几种常见的轻量级代码评审方式:
Over-the-shoulder – One developer looks over the author’s shoulder as the latter walks through the code.(它由作者启动和主持评审,作者向评审者展示文档。优点是启动快,成本低,缺点是容易被作者误导过程)
Email pass-around – Source code management system emails code to reviewers automatically after checkin is made.(优点自动化,可以及时提供最新代码进行评审,缺点是无法达到人工筛选的功效)
Pair Programming – Two authors develop code together at the same workstation, such is common in Extreme Programming.(源于XP,作者与评审者平级,可以帮助同伴间的学习和共享)
Review Meeting – (定期组织review会议,轮流有团队成员选出自己的评审作品,需要系统化得预备、总结和追踪。优点可以提高团队整体技能和对产品的理解,缺点是评审范围有限,成本较高 )
Tool-assisted code review – Authors and reviewers use specialized tools designed for peer code review. (大量的代码评审工具,比较流行的checkstyle/findbugs/pmd)
本文以下内容都是指针对轻量级代码评审进行进一步讨论。
Options of Code Review(代码评审的选择)编辑
1、最近一次迭代开发的代码
2、系统关键模块
3、业务较复杂的模块
4、缺陷率较高的模块
Practice of Code Review(代码评审实践)编辑
代码评审不是批斗会,不能以缺陷和错误来打击开发人员的积极性评审的目标的提高质量和提高整体水平,作者应该带着学习和提高的态度来参加评审。
代码集体所有制:对发现的问题要本着整体承担责任 的原则,因此建议把代码质量与团队绩效(而不是个人绩效)挂钩。
评审程度,进行一次整体的地毯式的评审成本很高。
代码评审的可操作性,首先需要评审团队具备经验丰富的系统架构师和精通业务的行业专家。其次团队需建立其开发规范或指南,在项目初期建立少量的Sample代码与checklist为评审提供依据。
评审人员的职责是发现工作成果中的缺陷,并帮助开发人员给出消除缺陷的办法,而不是替开发人员消除缺陷 。
记录评审中出现的问题,跟踪改进。
评审前充分准备,评审后详细总结。
不要因为时间和成本问题取消评审。

最新文章

  1. ASM磁盘组扩容流程
  2. OS的沙盒机制 --基础知识
  3. 使用emIDE创建STM32项目
  4. userdel 连同家目录一起删除
  5. javascript数组的一些方法实例
  6. c#中的protected和internal
  7. 获取Trustedinstalled权限.reg
  8. Swift中的HTTP请求
  9. 【BZOJ】【1150】【CTSC2007】数据备份Backup
  10. 详解C/C++函数指针声明
  11. EasyUI的增删查改(后台ASP.NET)
  12. (java)从零开始之-反射Reflect
  13. Struts2注解学习1
  14. devexpress实现单元格根据条件显示不同的样式(颜色、字体、对齐方式,大小等)
  15. MyBatis的关联关系 一对一 一对多 多对多
  16. jquery 循环数组输出显示在html页面
  17. iOS 通过UIControl,自定义控件
  18. Github Pages 搭建HEXO主题个人博客
  19. Kubernetes入门-集群安装
  20. mysql 报错 Packets larger than max_allowed_packet are not allowed

热门文章

  1. CentOs 系统启动流程相关
  2. Python[1,1]
  3. Ubuntu远程登陆、SSH图形界面、WOL远程唤醒
  4. common lisp的宏的工作模式
  5. SEO诊断之关于网站收录(转)
  6. java中this关键字解析
  7. I - Intersection HDU - 5120(圆环相交面积)
  8. linux-more
  9. 面向亿万级用户的QQ一般做什么?——兴趣部落的Web同构直出分享
  10. 一起写框架-控制反转(Ioc)概述(二)