在團隊協力開發模式的工作流程裡面,Code Review通常會佔很重要的一個環節,有良好的Coding Standard配合良好的Code Review機制,就能更進一步的加強程式碼的品質和可讀性。不過通常Code Review都得透過人工或是其他第三方的工具來進行,因此善用對的工具就可以節省許多的時間,也可以培養團隊中開發人員的習慣。
今天要跟各位介紹的,就是一個能降低大量Code Review時間的好工具....
在團隊協力開發模式的工作流程裡面,Code Review通常會佔很重要的一個環節,有良好的Coding Standard配合良好的Code Review機制,就能更進一步的加強程式碼的品質和可讀性。不過通常Code Review都得透過人工或是其他第三方的工具來進行,因此善用對的工具就可以節省許多的時間,也可以培養團隊中開發人員的習慣。
今天要跟各位介紹的,就是一個能降低大量Code Review時間的好工具,只要開發人員在編寫完程式碼之後,用這個工具先行檢查程式碼,就可以初步的找到不符合Coding Standard的地方。
這個工具就是大名鼎鼎的FxCop啦!!其實它已經有相當的歷史了,早期的版本得自行下載安裝,而之後更被整合進了Visual Studio中,不過,目前最新的版本(10.0版)則是依附在Microsoft SDK for Windows 7 and .NET Framework 4.0內,有需要的朋友可以選擇線上安裝版下載,或是選取ISO檔下載。
安裝完畢Microsoft SDK for Windows 7 and .NET Framework 4.0之後,可以在C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\FXCop資料夾裡面找到FxCop的安裝檔FxCopSetup.exe,安裝的方式很簡單,就是一直下一步就對了~
安裝完FxCop之後就可以在開始功能表中或是C:\Program Files\Microsoft Fxcop 10.0中找到它的執行檔啦(64位元作業系統則為C:\Program Files (x86)\Microsoft Fxcop 10.0)。
而我自己目前使用的版本是10.0.30319.1
看到這邊,大家應該很想知道這個東西可以怎麼幫助我們降低Code Review的時間對吧!?不過,先別急,要檢查程式碼也總得要有個規則才行,FxCop中內建了許多的規則,而這些規則的定義都可以在MSDN上找到。
內建的規則真的是落落長,我們就先從規則的分類來看吧!!執行FxCop,把視窗的左半部切換切換為Rules頁籤,可以看到內建的規則分類如下(每條規則都會和MSDN上的定義對應,不過我們應該是沒辦法一條一條全部看完):
OK,跳過落落長的規則之後,把視窗的左半部切換回原來的Targets頁籤:
只要將我們要檢查的dll檔或是exe檔拖拉到左邊的Targets頁籤中;或是在Targets頁籤中按滑鼠右鍵 -> Add Targets -> 再選取要分析的檔案,接著按下Analyze鈕,就可以馬上進行分析的動作,而分析的結果則是會列在右半邊的視窗中。
因為預設是會使用上面提到的所有檢查規則的,除非我們的程式真的有很乖的遵守每條規則,不然通常在按下Analyze鈕之後,右半邊就會變得非常的精采!!不過,畢竟不是每個專案都必需這麼樣的吹毛求疪,所以可以透過點選Rules頁籤之後,自行勾選要檢查的項目就好。
另外,如果以滑鼠左鍵點選右手邊的違規列表中的項目的話,下面的Properties頁籤中也會顯示更詳細的關於該項違規的描述。
在挑選完要檢查的規則之後,我們也可以按下Save Project按鈕或是點選功能表的File -> Save Project,將目前設定好的檢查規則和要檢查的目標儲存下來,以便日後使用或是修改。
分析完畢之後 也可以透過Save Analysis Report按鈕,將分析的結果輸出成XML檔喔!!
基本的使用方式大概就如同上面介紹的,但是~還有一點很重要!!當被檢查出有違反規則的地方之後怎麼辦呢!?只要Double Click視窗右半邊的違規列表中的資料的話,就會出現Message Details視窗,Issues頁籤裡會列出違規的檔案和行數,並且提供解決的建議:
Rule Details頁籤中會列出該規則的詳細資料:
Message頁籤中會列出檢查的目標中,違規的Method為何:
Rule Support頁籤中則會有該規則在MSDN的連結:
Notes頁籤則可以讓我們自行加入針對該規則的註記:
如果被找到的違規我們希望將它排除掉的話,則可以按下下面的Exclude鈕,那麼該違規就會被排除掉。
另外,如果覺得每次都還得要另外開FxCop的執行檔才能檢查程式碼是一件麻煩的事情的話,那也可以考慮下載安裝FxCop Integrator for Visual Studio 2010
就可以直接在VS2010裡面直接呼叫FxCop來進行程式碼檢查的動作喔!!