SourceMonitor 是用來檢測程式碼的複雜度,雖然程式碼的複雜度沒有一個絕對值,但是檢測出來的值有其參考價值的。
當我們發現某些 method 的複雜度比其他 method 高的時候,我們可以去看看這些 method 是出了什麼事?有沒有降低複雜度的機會?
安裝 SourceMonitor
從 http://www.campwoodsw.com/sourcemonitor.html 下載到 Jenkins Server 上安裝起來。
安裝 HTML Publisher Plugin
SourceMonitor 的結果沒辦法給 Report Violation 來幫助我們視覺化,所以我安裝了 HTML Publisher Plugin 用來幫助把 SourceMonitor 偵測的結果視覺化。
添加建置步驟 - 執行 Windows 批次指令
這裡需要額外的一個工具 msxsl,到微軟的官網直接下載使用即可,它的作用在於將 SourceMonitor 的結果轉成 html。
添加建置後動作 - Publish HTML reports
把輸出後的 SourceMonitor.html 填入 Index page(s) 欄位,並且給它一個 Report title。
Demo
顯示前 30 個程式碼複雜度最高的 method
顯示前 30 個 Block 巢狀深度最深的行號