天天看點

【整理】PYTHON代碼審查工具python的review工具python文法檢查工具python覆寫工具

這兩天看了python相關代碼的審查、覆寫等工具,先記錄下來,後邊再總結其用法。

python的review工具

Review board

Review board 是一個 基于web 的工具,主要設計給django 和python的使用者。Review board 可以幫助我們追蹤待決代碼的改動,并可以讓Code-Review更為容易和簡練。盡管Review board 最初被設計在VMware項目中使用,但現在其足夠地通用。目前,其支援這些代碼版本管理軟體:SVN, CVS, Perforce, Git,Bazaar, 和Mercurial.

Codestriker

Codestriker 也是一個基于Web的應用,其主要使用 GCI-Perl 腳本支援線上的代碼審查。Codestriker 可以內建于CVS,Subversion, ClearCase, Perforce 和Visual SourceSafe。并有一些插件可以提供支援其它的源碼管理工具。

Groogle

Groogle 是一個基于WEB的代碼評審工具。Groogle 支援和 Subversion 內建。它主要提供如下的功能:

  • 各式各樣語言的文法高亮。
  • 支援整個版本樹的比較。
  • 支援當個檔案不同版本的diff功能,并有一個圖形的版本樹。
  • 郵件通知所有的Reivew的人目前的狀态。
  • 認證機制。

Rietveld

Rietveld 由Guido van Rossum 開發(他是Python的創造者,現在是Google的員工),這個工具是基于Mondrian 工具,作者一開始是為了Google 開發的,并且,它在很多方面和Review board 很像。它也是一個基于Web的應用,并可以Google App Engine 當主機。它使用了目前最流行的Web開發架構django 并支援 Subversion 。目前,任何一個使用 Google Code 的項目都可以使用Rietveld 并且使用 python Subversion 伺服器。當然,它同樣支援其它的Subversion伺服器。

JCR

JCR 或者叫做 JCodeReview 也是一個基于WEB界面的最初設計給Reivew Java 語言的一個工具。當然,現在,它可以被用于其它的非Java的代碼。

JCR 主要想協助:

審查者。所有的代碼更改都會被高亮,以及大多數語言的文法高亮。Code extracts 可以顯示代碼評審意見。如果你正在Review Java的代碼,你可以點選代碼中的類名來檢視相關的類的聲明。

項目所有者。可以 輕松建立并配置需要Review的項目,并不需要內建任何的軟體配置管理系統(SCM)。

流程信仰者。 所有的評語都會被記錄在資料庫中,并且會有狀态報告,以及各種各樣的統計。

架構師和開發者。 這個系統也可以讓我們檢視屬于單個檔案的評語,這樣有利于我們重構代碼。

Jupiter

最後我們要提一下Jupiter,這是另一個代碼review的工具你可以去考慮使用的,它是一個Eclipse IDE 的插件。

python文法檢查工具

Pylint 是什麼

Pylint 是一個 Python 代碼分析工具,它分析 Python 代碼中的錯誤,查找不符合代碼風格标準(Pylint 預設使用的代碼風格是 PEP 8,具體資訊,請參閱參考資料)和有潛在問題的代碼。目前 Pylint 的最新版本是 pylint-0.18.1。

Pylint 是一個 Python 工具,除了平常代碼分析工具的作用之外,它提供了更多的功能:如檢查一行代碼的長度,變量名是否符合命名标準,一個聲明過的接口是否被真正實作等等。

Pylint 的一個很大的好處是它的高可配置性,高可定制性,并且可以很容易寫小插件來添加功能。

如果運作兩次 Pylint,它會同時顯示出目前和上次的運作結果,進而可以看出代碼品質是否得到了改進。

目前在 eclipse 的 pydev 插件中也內建了 Pylint。

pychecker

python覆寫工具

coverage.py是一個用來統計python程式代碼覆寫率的工具。它使用起來非常簡單,并且支援最終生成界面友好的html報告。在最新版本中,還提供了分支覆寫的功能。

官方網站:

http://nedbatchelder.com/code/coverage/  
           

win32版本下載下傳位址:

http://pypi.python.org/pypi/coverage 
           

或者通過easy-install來安裝:

easy_install coverage