1. 程式人生 > >Keywords : Code Review、Jupiter、ReviewClipse、程式碼評審、程式碼審查

Keywords : Code Review、Jupiter、ReviewClipse、程式碼評審、程式碼審查

Keywords : Code Review、Jupiter、ReviewClipse、程式碼評審、程式碼審查

最近組內一直在做程式碼改進,既然是程式碼級別的改進,我想比較直接有效的辦法就是Code Review。

雖然以前開發部也做過程式碼評審,但基本上是程式設計師手動打包程式碼,評審人員對照打包和IDE中的程式碼提交缺陷,缺陷在平臺上,程式碼在IDE中,我想評審效率和評審效果都會大打折扣。

既然發現了問題,目標很明確,找到一個即可以提高評審效率(即讓評審人和被評審人都可以很方便的來參與評審),又可以保證評審效果的工具。

再結合我們的實際情況,我們是使用Eclipse IDE開發的,Eclipse的外掛不計其數,不怕找不到,就怕你不找,因此從Eclipse Code Review Plugin

 下手。

經過調研和試用,我找到兩款比較好用的免費外掛:ReviewClipse 和 Jupiter 。

簡單介紹一下這兩個工具的特點和在Qone中的使用場景

ReviewClipse 

官方地址:http://www.inso.tuwien.ac.at/projects/reviewclipse/ 

這款外掛是基於SVN版本比較機制進行程式碼Review的工具,通過配置svn中哪些人可以評審哪些人的指定型別程式碼,可以監控整個專案範圍內指定人員指定型別程式碼檔案的所有變更情況。通過這些變化程式碼的前後版本對比,可以發現被評審人的所有程式碼改動。

它比較適合在對程式碼改動比較敏感的階段使用,如版本測試後期bug修改階段或者mantis上小版本bug修改。或者進行較頻繁的程式碼評審時使用,如專案經理想看新人每天提交的程式碼,讓新人快速提升程式碼質量及改善程式碼風格。

這個工具應該說是專案經理進行程式碼修改影響分析的好工具,無需再自己對著SVN log,查誰改了哪些檔案,然後再查影響分析了。貼個圖先:

ReviewClipse檢視程式碼變動

 

檢視不同版本程式碼的對比情況
  
同時ReviewClipse還支援多人協同的程式碼評審,被評審人可以看到評審人給出的評審意見。

ReviewClipse的不足在我看來就是它只支援檔案級別的程式碼評審,不能提供程式碼行級別的評審,並且不支援常規的程式碼評審流程。

Jupiter 

jar及幫助文件下載地址:http://code.google.com/p/jupiter-eclipse-plugin/downloads/list 

中文簡要參考文件:http://fyting.iteye.com/blog/87489 

Jupiter解決了ReviewClipse的不足,它提供了程式碼行級別的評審批註功能,方便評審參與人瞭解具體是哪些行程式碼存在問題。同時,它也比較 符合常規的評審流程,被評審人提供待審程式碼->評審人線下提出個人意見->組織討論會討論每個人提出的意見並確定問題及解決方案->被 評審人rework修改程式碼->評審人檢視修改情況。

Jupiter支援在一個專案中的多次評審,多人協同參與評審,支援多種配置庫如SVN、CVS等,支援簡單的評審流程,支援問題跟蹤。

我想Jupiter提供的這些簡單的功能,已經完全可以勝任常規的程式碼評審需要,作為常規評審比較合適。並且評審人和被評審人都可以通過Eclipse操 作,對於我們程式設計師來說,很方便,大家天天都要對著Eclipse,Jupiter可以讓程式碼評審成為編碼的一部分工作而又不增加評審工作量。

Jupiter雖然對常規程式碼評審(Code Review)比較適合,但是對於像敏捷中的每日程式碼評審就顯得有些力不從心,雖然也可以做到,但是每次評審需要指定評審檔案,並且不能通過指定目錄或者 萬用字元方式還是有些不便的,這一點它不如ReviewClipse那麼直接精準。

先上一個Jupiter的圖:



 
  
這兩款工具完全可以結合起來使用,相信會減少不少程式碼評審的工作量。

兩個工具的詳細介紹,內容比較多,有必要再單獨開2個帖子討論,當然這也得看大家的回帖和參與情況了,否則沒有發帖動力啊:)
暫時先介紹這麼多…