聊聊Code Review

转载:https://richardcao.me/2016/09/30/Talk-About-Codereview/

 

最近思考一个问题,如何进行高效的codereview,有没有好的工具可以使用,于是花了两三天时间在Google里淘了一番,这里留下记录。

Phabricator

首屈一指的codereview工具,当然并不限于codereview,这个工具我体验了下,功能很强大。除了codereview之外,还有task,bug的管理,wiki管理,项目管理等功能,而且还有自定义的功能,界面也很清爽。个人觉得几乎没什么可以挑剔的地方,如果正好需要一套工具互相配合的团队,选这个就没错了。(如果是我,我就比较倾向于这个工具的)

  • 体验Phabricator

ReviewNinja

刚开始体验这个工具,纯粹是因为好奇,被这名字吸引住了:英文+日文的读音,再加上我又是火影迷……体验之后感觉还真的不错。

这个工具非常轻量级,而且只支持github,很适合个人、小团队使用。专注于codereview这个功能,界面什么的也很清爽,可以通过一些特殊的comment符号让github的merge按钮产生响应的变化,同时还会改变github pr的checks。如果我的场景只有github,那我会选择用这个工具,接入也非常简单,开源免费。

  • ReviewNinja的review效果

Codacy

这个工具有点像Phabricator,不过这个工具有代码质量的统计和建议,还有分析,codereview功能也很全,还有dashboard可以一览项目的各种指标,非常赞,关键是这个工具可以对接github、bitbucket、jira和Jenkins,还可以对接hipchat和slack等,功能很强大,值得好好挖掘一下。个人觉得这个工具适用范围挺广的,一些对项目质量有追求的不仅仅限于codereview的可以尝试用一用,对github上的public仓库是免费的。

  • Codacy Features
  • Codacy体验效果

RhodeCode

支持git,svn,多仓库管理,界面体验也比较清爽,功能和codacy有不少重合的地方。

  • RhodeCode Features
  • RhodeCode demo

Gerrit

这是Google开源的codereview工具,和Phabricator并驾齐驱,也很强大,只不过我个人不太喜欢这个界面风格……这个我没有自己去搭过,只是看了官网的一些信息,功能上不输Phabricator。喜欢的朋友可以去体验一把。

总结

以上列举了我这两三天着重看的一些codereview工具,适用场景也大概总结了一下。高效的codereview非常重要,如果有好的工具帮助我们进行codereview,往往会达到事半功倍的效果。

转载于:https://www.cnblogs.com/shengulong/p/8866681.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/452941.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

项目管理十大趋势

趋势一、更多中国企业成立项目管理办公室,项目管理办公室也发挥更大的作用 在国内,仍有很多企业每年有成百上千的项目实施,而公司却没有成立项目管理办公室,或者已经有了PMO,但是PMO仍在履行一些较为基础的职能。 没…

启动django服务器报错raise errorclass(errno, errval) django.db.utils.InternalError

问题描述: 启动django服务器python manage.py runserver报错: raise errorclass(errno, errval) django.db.utils.InternalError: (1366, “Incorrect string value: ‘\xE7\x94\xA8\xE6\x88\xB7’ for column ‘name’ at row 1”) 原因:与mysql数据库…

java单例模式之线程安全问题

单例的目的是为了保证运行时Singleton类只有唯一的一个实例,用于一些较大开销的操作。 饿汉式(没有线程安全问题): ‘ 由于使用static关键字进行了修饰,只能获取到一个对象,从而达到了单例,并且在Singleton…

路由协议和路由算法的不同

网络上的主机、路由器通过路由选择算法形成路由表,以确定发送分组的传输路径。而路由选择协议是路由器用来完成路由表建立和路由信息更新的通信协议。

2003 r2 64 iis php mysql_关于在win2003中,iis+php+mysql 配置的问题

IIS中配置PHP服务器(iis6.0php5.2.6mysql),步骤如下:1.我下的是php5.2.6_win32 ,下载后,解压到d:\phpwin下面2.然后从其中找到一个叫php.ini-recommended的文件,更名为php.ini3.打开该文件,找到extension_dir ".…

448. Find All Numbers Disappeared in an Array 寻找有界数组[1,n]中的缺失数

[抄题]: Given an array of integers where 1 ≤ a[i] ≤ n (n size of array), some elements appear twice and others appear once. Find all the elements of [1, n] inclusive that do not appear in this array. Could you do it with…

数据结构与算法--1.整型变量值互换

问题: 给定两个整型变量a,b,在不使用其他变量的情况下,实现两个变量值的交换。 """ 问题:整型变量值互换 给定两个整型变量a,b,在不使用其他变量的情况下,实现两个变量值的交换。 """ a 1234 b 5678 print("binar…

什么是真正的高清,你知道吗?

摘要:高清,英文为“High Definition”,意思是“高分辨率”。一般所说的高清,有四个含义:高清电视,高清设备,高清格式,高清电影。 高清,英文为“High Definition”&#x…

oracle11g中SQL优化(SQL TUNING)新特性之SQL Plan Management(SPM)

1. 简介 Oracle Database11gR1引进了SQL PlanManagement(简称SPM),一套允许DBA捕获和保持任意SQL语句执行计划最优的新工具,这样,限制了刷新优化器统计数据,已有应用改变,甚至数据库版本升级带…

Linux基本命令+Makefile

1.linux下查看进程占用cpu的情况(top); 格式 top [-] [d delay] [q] [c] [S] [s] [i] [n] 主要参数 d:指定更新的间隔,以秒计算。q:没有任何延迟的更新。如果使用者有超级用户,则top命令将会以最高的优先…

数据结构与算法--2.数组的定位排序

问题: 给定一个数组A以及下标i,将数组元素进行调整,使得所有比A[i]小的元素排在前边,接着是所有等于A[i]的元素,最后排列的是比A[i]大的元素 思路: 第一步:将数组分成两部分,一部…

mysql语法题_mysql数据库题语法练习

一、练习。导入下面sql执行语句/*数据导入:Navicat Premium Data TransferSource Server : localhostSource Server Type : MySQLSource Server Version : 50624Source Host : localhostSource Database : sqlexamTarget Server Type : MySQLTarget Server Version …

ipv4的不足

v地址基本耗尽,这是当前最棘手的问题v路由表越来越大v功能不足,缺少对多媒体信息传输的支持v缺少对高速传输的支持v缺少对安全的支持v缺少对主机漫游的支持

OpenGL开发库的详细介绍

OpenGL开发库的组成 开发基于OpenGL的应用程序&#xff0c;必须先了解OpenGL的库函数。它采用C语言风格&#xff0c;提供大量的函数来进行图形的处理和显示。OpenGL库函数的命名方式非常有规律。所有OpenGL函数采用了以下格式<库前缀><根命令><可选的参数个数&g…

thinkphp5运行原理_ThinkPHP5.1~5.2全版本远程代码执行高危漏洞预警

漏洞综述关于ThinkPHPThinkPHP是一个快速、兼容而且简单的轻量级国产PHP开发框架&#xff0c;其借鉴了国外很多优秀的框架和模式&#xff0c;包括使用面向对象的开发结构和MVC模式&#xff0c;融合了Struts的思想和TagLib(标签库)、RoR的ORM映射和ActiveRecord模式等。该框架常…

ASP.NET MVC中controller和view相互传值的方式

ASP.NET MVC中Controller向view传值的方式&#xff1a; ViewBag、ViewData、TempData单个值的传递Json匿名类型ExpandoObjectCookieViewModel(向普通View页面传个Model对象、向强类型页面传一个Model对象、用一个ViewModel对象解决所有问题)ASP.NET MVC中view向Controller传值的…

自定义SeekBar 实时显示百分比进度

进度下方实时显示百分比进度禁止掉了SeekBar的滑动事件 详情 githus地址

数据结构与算法--3.字符串的旋转

题目&#xff1a; A是含有n个元素的数组&#xff0c;如果可以申请到最大内存&#xff0c;那么把A从位置i开始旋转是比较简单的。例如&#xff1a;A:a,b,c,d,e.其中i3,旋转后的字符串A为&#xff1a;d,e,a,b,c要求设计一个时间复杂度为O(n),空间复杂度为O(1)的算法&#xff0c;…

三网融合情况下,实时语音通信技术解决之道

随着技术和标准的不断成熟,伴随着“三网合一”的大潮,VoIP可望成为下一代电信基础设施结构的杨心,使未来各电信业务综合统一在IP网络上成为可能,导致数据的融合和未来电信市场的重组,并带来新的经济模式和价值链。 Internet在全世界范围内的快速发展和语音信号处理技术的进步,促…

ipv6相对于ipv4的改进

v更大的地址空间&#xff1a;16字节&#xff0c;128位v首部的简化&#xff1a;只有7个固定域&#xff0c;撤消了有关分段的域和校验和域&#xff0c;以便更快地处理分组&#xff0c;提高路由器的吞吐量缩短延时。v更好地支持选项&#xff1a;选项是有次序的&#xff0c;以便路由…