Code Review 五问五答
Code Review 是什么?
Code Review即代码审查,程序猿相互审核对方的代码。
Code Review能获得什么好处?
- 提高代码可维护性
- 你写的代码不再只有编译器看了,你得写出审核人能看得下去的代码,
并且还得考虑这段代码还有没有改进或者重构的可能
- 你写的代码不再只有编译器看了,你得写出审核人能看得下去的代码,
- 提高代码质量
- 不再有明显的逻辑错误,单元测试用例是否考虑边界值等情况,从而减少BUG的产生
- 团队知识共享
- 新的技术或者新的思路能够快速的在团队内传递
- 提高项目预估准确性
- 通过代码审核,让产品经理或者Scrum Master能更好的了解任务,更准确的估算工时
- 业务或功能不再只依赖个人
- 没有人喜欢修改别人的代码,尤其是生产环境中的核心业务代码。代码审查可以让至少另一个人对这段代码如数家珍
- 指导新工程师
- 代码审查有助于促进新成员更快的加入团队,快速掌握业务和技术知识
提交Code Review之前要做什么?
- 准备或者提交相关需求文档以备审查者询问
- 编写符合规范的代码和合适的注释
- 考虑代码是否有重构的可能
- 单元测试全部通过,测试覆盖率达标
如何Code Review?
- 了解需求:这个提交是为了解决什么问题,是需求单、BUG修复、还是代码重构,
如果不明确,需要及时和代码作者沟通和讨论 - 检查代码业务逻辑是否符合需求
- 代码是否符合相关代码规范
- 确认是否有更好的方式方法重构代码
- 检查单元测试用例是否考虑全面
- 如果代码没有问题,也写上类似GOOD JOB之类的评论
Code Review之后可以做什么?
- 对于代码审查人表示感谢
- 如果代码审查没有通过,不要往心里去,审查的是代码,不是你
- 尝试对每一个评论做出回复
- 等待合并分支,等待持续集成告诉你全部通过
参考链接
- (https://github.com/thoughtbot/guides/tree/master/code-review)
- (https://smartbear.com/learn/code-review/best-practices-for-peer-code-review/)
- (https://smartbear.com/learn/code-review/guide-to-code-review-process/)
Code Review 五问五答的更多相关文章
- C#学习基础概念二十五问
C#学习基础概念二十五问 1.静态变量和非静态变量的区别?2.const 和 static readonly 区别?3.extern 是什么意思?4.abstract 是什么意思?5.internal ...
- 找到bug的根源,问五次为什么
在学习<问题分析与解决>时学到了一种找到问题根源的方法——问五次为什么.具体内容是:当遇到一个问题,不要只看当前答案,要继续往下问,为什么,连问五次,就能够找到更深层次的问题.最近在复盘b ...
- var=value?export前后差在哪?-- Shell十三问<第五问>
var=value?export前后差在哪?-- Shell十三问<第五问> 这次让我们暂时丢开 command line ,先来了解一下 bash 变量(variable)吧.所谓的 变 ...
- 在 GitHub 上玩转开源项目的 Code Review
一.幕后故事 时光荏苒,岁月如梭-- (太文绉绉了,这不是我的风格) 今天我准备聊聊在 GitHub 上如何玩 Code Review. 突发奇想?心血来潮?不是. 咋回事呢?(对八卦不感兴趣的可以直 ...
- OpenGL快问快答
OpenGL快问快答 本文内容主要来自对(http://www.opengl.org/wiki/FAQ)的翻译,随机加入了本人的观点.与原文相比,章节未必完整,含义未必雷同,顺序未必一致.仅供参考. ...
- 如何搭建开源code review gerrit服务器
搭建环境:Ubuntu 14.04 一.环境准备 1.Java环境 gerrit依赖,用于安装gerrit环境. 下载:jdk-7u79-linux-x64.tar.gz http://www.ora ...
- code review作业
下面是对结对编程队友12061166 宋天舒的code review 五个优点: 1.代码的风格优秀,注释不多,但是必要的注释还是有的,比如: // 三种模式 // mode1仅统计单个单词 // m ...
- <转>如何进行code review
转自: http://pm.readthedocs.org/zh_CN/latest/codereview/howto.html 如何进行code review? code reivew是保障代码质量 ...
- Android 动画 6问6答
1.view 动画有哪些需要注意的? 答:view动画 本身比较简单.http://www.cnblogs.com/punkisnotdead/p/5179115.html 看这篇文章的第五问就可以了 ...
随机推荐
- Apache虚拟主机配置
在一个Apache服务器上可以配置多个虚拟主机,实现一个服务器提供多站点服务,其实就是访问同一个服务器上的不同目录.Apache虚拟主机配置有3中方法:基于IP配置.基于域名配置和基于端口配置,这里介 ...
- 【JavaScript】EasyUI框架的Dialog控件根据浏览器分辨率自动调节宽高
序: 如果单独一个或几个Dialog控件修改成根据浏览器可视界面自动调整高.宽很容易仅仅是一个量变的过程,但如果大量页面都引入了Dialog控件,修改起来是一个很消耗体力的工作.所以接到任务后第一想法 ...
- SQL Server调优系列基础篇(并行运算总结)
前言 上三篇文章我们介绍了查看查询计划的方式,以及一些常用的连接运算符.联合运算符的优化技巧. 本篇我们分析SQL Server的并行运算,作为多核计算机盛行的今天,SQL Server也会适时调整自 ...
- sql server 索引分析相关sql
select object_id('dbo.FT_CFP_TRADE_SUBACCOUNT') select * from sys.partitions where [object_id]=14672 ...
- 使用数据库sqlite3 C语言实现登陆注册的功能
//此代码为注册功能 void create_regtable() { int rc; //rc为返回值,判断函数是否执行成功 rc=0函数执行成功,rc !=0函数执行失败 sqlite3 *db; ...
- iframe 的使用和登陆退出的实现——整个页面跳转
iframe中如果只是页面跳转的话,我们依然只是部分的加载的了,为了实现整个页面的所有内容跳转,下面提供了整个页面跳转的方法. iframe例子 1.总的iframe页面(访问就访问这个) all. ...
- FTP上传与下载
1.连接 先假设一个ftp地址 用户名 密码 FTP Server: 192.168.1.125 User: administrator Password: abc123 2. 打开win ...
- Unity Ragdoll(布娃娃系统)
逼真的动作如何实现的? 在一些游戏中当NPC或玩家死亡的时候,死亡的肢体动作十分逼真,这一物理现象如何用Unity来实现呢?Unity物理引擎中的Ragdoll系统,可以用来创建这种效果,具体请参阅以 ...
- guava 学习笔记 使用瓜娃(guava)的选择和预判断使代码变得简洁
guava 学习笔记 使用瓜娃(guava)的选择和预判断使代码变得简洁 1,本文翻译自 http://eclipsesource.com/blogs/2012/06/06/cleaner-code- ...
- 转: vim 的编辑格式设置
http://www.cnblogs.com/freewater/archive/2011/08/26/2154602.html :set encoding=utf-8:set fileencodin ...