Code Review:代碼審查工具大閱兵
Code Review中文應(yīng)該譯作“代碼審查”或是“代碼評審”,這是一個流程,當(dāng)開發(fā)人員寫好代碼后,需要讓別人來review一下他的代碼,這是一種有效發(fā)現(xiàn)BUG的方法。由此,我們可以審查代碼的風(fēng)格、邏輯、思路……,找出問題,以及改進(jìn)代碼。因為這是代碼剛剛出爐的時候,所以,這也是代碼重構(gòu),代碼調(diào)整,代碼修改的最佳時候。所以,Code Review是編碼實(shí)現(xiàn)中最最重要的一個環(huán)節(jié)。
長時間以來,Code Review需要有一些有效的工具來支持,這樣我們就可以更容易,更有效率地來進(jìn)行代碼審查工作。下面是5個開源的代碼審查工具,他們可以幫助你更容易地進(jìn)行這項活動。
1. Review board:
Review board 是一個 基于web 的代碼審查工具,主要設(shè)計給 django 和python的用戶。 Review board 可以幫助我們追蹤待決代碼的改動,并可以讓Code-Review更為容易和簡練。盡管Review board 最初被設(shè)計在VMware項目中使用,但現(xiàn)在其足夠地通用。當(dāng)前,其支持這些代碼版本管理軟件: SVN, CVS, Perforce, Git, Bazaar, 和Mercurial.
Yahoo 是review-board的其中一個用戶。
“Review board 已經(jīng)改變了代碼評審的方式,其可以強(qiáng)迫高質(zhì)量的代碼標(biāo)準(zhǔn)和風(fēng)格,并可以成為程序員編程的指導(dǎo)者。每一次,當(dāng)你訪問search.yahoo.com 時,其代碼都是使用 Review board工具Review過的。 We’re great fans of your work!” – Yahoo! Web Search
2. Codestriker:
Codestriker 也是一個基于Web的應(yīng)用,其主要使用 GCI-Perl 腳本支持在線的代碼審查。Codestriker 可以集成于CVS, Subversion, ClearCase, Perforce 和Visual SourceSafe。并有一些插件可以提供支持其它的源碼管理工具。
David Sitsky 是 Codestriker 的作者,并也是最活躍的開發(fā)人員之一。 Jason Remillard 是另一個活路的開發(fā)者,并給這個項目提供了最深遠(yuǎn)最有意義的貢獻(xiàn)。大量的程序員貢獻(xiàn)他們的代碼給 Codestriker 項目,導(dǎo)致了這個項目空前的繁榮。
3. Groogle:
Groogle 是一個基于WEB的代碼審查工具。 Groogle 支持和 Subversion 集成。它主要提供如下的功能:
◆各式各樣語言的語法高亮。
◆支持整個版本樹的比較。
◆支持當(dāng)個文件不同版本的diff功能,并有一個圖形的版本樹。
◆郵件通知所有的Reivew的人當(dāng)前的狀態(tài)。
◆認(rèn)證機(jī)制。
4. Rietveld:
Rietveld 由Guido van Rossum 開發(fā)(他是Python的創(chuàng)造者,現(xiàn)在是Google的員工),這個工具是基于Mondrian 工具,作者一開始是為了Google 開發(fā)的,并且,它在很多方面和Review board 很像。它也是一個基于Web的應(yīng)用,并可以Google App Engine 當(dāng)主機(jī)。它使用了目前最流行的Web開發(fā)框架 django 并支持 Subversion 。當(dāng)前,任何一個使用 Google Code 的項目都可以使用 Rietveld 并且使用 python Subversion 服務(wù)器。當(dāng)然,它同樣支持其它的Subversion服務(wù)器。
5. JCR
JCR 或者叫做 JCodeReview 也是一個基于WEB界面的最初設(shè)計給Reivew Java 語言的一個代碼審查工具。當(dāng)然,現(xiàn)在,它可以被用于其它的非Java的代碼。
JCR 主要想?yún)f(xié)助:
審查者。所有的代碼更改都會被高亮,以及大多數(shù)語言的語法高亮。Code extracts 可以顯示代碼評審意見。如果你正在Review Java的代碼,你可以點(diǎn)擊代碼中的類名來查看相關(guān)的類的聲明。
項目所有者??梢?輕松創(chuàng)建并配置需要Review的項目,并不需要集成任何的軟件配置管理系統(tǒng)(SCM)。
流程信仰者。 所有的評語都會被記錄在數(shù)據(jù)庫中,并且會有狀態(tài)報告,以及各種各樣的統(tǒng)計。
架構(gòu)師和開發(fā)者。 這個系統(tǒng)也可以讓我們查看屬于單個文件的評語,這樣有利于我們重構(gòu)代碼。
JCR 主要面對的是大型的項目,或是非常正式的代碼評審,從這方面看來,他并不像上面的那些工具。
Jupiter:最后我們要提一下Jupiter,這是另一個代碼review的工具你可以去考慮使用的,它是一個Eclipse IDE 的插件。
【編輯推薦】