聊聊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.pswp.cn/news/452941.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/452941.shtml
英文地址,請注明出處:http://en.pswp.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;以便路由…