為什么要codereview
. 整個團隊的編碼風格是統一的。
. 有高手能對自己的代碼指點一二,從而提高編碼水平。
. 減少低級錯誤的出現
. 約束自己寫高質量的代碼,因為是要給人看的。
我們對codereview的需求
. 很輕松可以發布自己寫的代碼。
. 很輕松的可以與老代碼diff review。
. review的人和被review的人很輕松的交互,而且還能保存交互的歷史。
我選擇rietveld
?基于以上需求,rietveld都滿足,web應用是基于jango框架開發,可以通過一個python的客戶端上傳需要review的代碼,而這一切又可以與svn或git無縫對接,因為它的diff是基于,review人員可以在web應用上看上傳上來的需要review的代碼,并且可以做批注。如果想了解rietveld,可以訪問官方文檔。http://code.google.com/p/rietveld/
,在這里我就不贅述了。
部署
其實rietveld本來就有個服務器托管,但國內各種被墻(大家都懂的),所以我們需要在搭建一個本地環境,可以按照官網里面的部署方法,切記要選擇不基于app-engine的方式,這種是可以直接部署在本地的(我部署時基于app-engine各種麻煩)。大家可以參考http://django-gae2django.googlecode.com/svn/trunk/examples/rietveld/README, 記得進去后直接找“Manual Setup”即可,前提你有個svn客戶端和python2.7以上的版本。
checkout Django 1.2.5框架svn co http://code.djangoproject.com/svn/django/tags/releases/1.2.5/django djangosvn co http://django-gae2django.googlecode.com/svn/trunk/gae2djangocheckout Rietveld svn co http://rietveld.googlecode.com/svn/trunk/codereviewsvn co http://rietveld.googlecode.com/svn/trunk/staticsvn co http://rietveld.googlecode.com/svn/trunk/templatessvn export http://rietveld.googlecode.com/svn/trunk/upload.py再打補丁:patch -p0 < patches/upload.diffpatch -p0 < patches/account-login-links.diffpatch -p0 < patches/download.link.diff再裝數據庫./manage.py syncdb
在部署時會讓你添加管理員和密碼,你按步驟做就行了,就可以開啟web服務了。
在當前目錄下:./manage.py runserver 127.0.0.1:8000
在瀏覽器輸入:127.0.0.1:8000, 就可以進入界面了,?
這里有個地方需要大家注意下,最開始如果用戶登陸會報Modal User找不到getId()的錯誤,, 這需要找到Modal.py 將user.getId() 全部換成user.id就都OK了。
?