軟體品質靜態分析的好工具 NDepend

有些公司會使用 SonarQube 來做軟體品質靜態分析。
它從 Source Control 拉程式碼到 Server 做分析。
那在程式碼 commit 前是否可以先幫我們分析,
然後讓我們做好改善呢? 
這時我們可以使用 NDepend 這個工具,
它可以獨立執行,也可以在 VS.NET 中執行。

安裝

NDepend 下載後,它是一個 Zip 檔,解開來放在某個 Folder 就可開始執行,如下。

NDepend.Console.exe

它是 console 程式,所以直接開啟 command 視窗,就可以操作它,如下,


分析結果如下,

NDepend.VisualStudioExtension.Installer.exe

安裝 NDepend Extension 到 VS.NET IDE 中(Support 2010 ~ 2017),如下,

使用方式

開啟開發人員常用的 VS.NET ,就可以發現 Menu 上面多了 NDepend ,
我們可以從 Start Page 開始,開啟之前的 NDepend 專案,如下,




也可以新增一個 NDepend 專案來分析,如下,



分析好了之後,可以查看有什麼 Rules Violated ,如下,


我們也可以新增 Rule ,如下,

另外, NDepend 提供 CQL (Code Query Language) ,我們可以下 Like LINQ 的方式來查詢,

而不需要使用 Find 來 Search,例如 我想找 Method Name 中有 WebHook ,並顯示誰 Call 這個 Method ,

就可以下 

Methods.Where(m=>m.NameLike("WebHooks")).Select(m=>new {m, m.MethodsCallingMe })
 


然後再點它們就可以串到那些程式去 

參考資料

NDepend