2015年9月9日 星期三

Visual Studio - Microsoft CodeLens Code Health Indicator

之前有介紹過如果我們要做程度碼度量,在 Visual Studio 裡可以使用內建的「計算程式碼度量 (Code Metrics)」功能,另外我也在這一篇「Visual Studio 計算程式碼度量 - Code Metrics Viewer 2013」介紹另外一個工具「Code Metrics Viewer 2013」也同樣是在做程度碼度量計算的工作,兩個功能其實都是差不多的,只是要看這些程式碼度量的數據都是要經過工具的計算,而且無法馬上或是隨時看到,比較重視這些數據的開發者是會感到有些不方便。

這篇要介紹的「Microsoft CodeLens Code Health Indicator」能夠將程式裡每個方法的程式碼度量給顯示在 CodeLens 上面,是個蠻方便的工具。

 


CodeMaid

http://www.codemaid.net/

https://visualstudiogallery.msdn.microsoft.com/76293c4d-8c16-4f4a-aee6-21f83a571496

要知道程式碼度量的循環複雜度,除了使用 Code Metrics 之外,我都是用 Code Maid Spade,我隨時可以看到目前所編輯的程式裡各個 Method 的循環複雜度,

image

原本我使用 CodeMaid Spade 的用意並不是為了要看循環複雜度,我只是用來當作程式碼 Outliner 的工具,我習慣去綜觀目前程式碼的全貌,而循環複雜度的數據則是我在開發導入了測試之後才去重視。

當然 CodeMaid 的功能並不僅止於此,CodeMaid Spade 與顯示循環複雜度數據的功能只是其中的一部份,還有很多實用的功能,大家可以安裝來用用看。

 

使用 CodeMaid Spade 是相當方便,但有個問題是我並不會時常將 CodeMaid Spade 視窗保持著,平常的一般編輯狀態是以下的樣子,

image

但右邊顯示區域的狀態是比較常會停留在 Team Explorer 或是測試總管,

image

image

所以如果可以在文字編輯器裡並且可以在 CodeLens 區域裡顯示該 Method 的循環複雜度就會更加方便了,而 Microsoft CodeLens Code Health Indicator 就是做這件事情的擴充功能。

 

CodeLens

不知道怎麼翻,忘了是誰說過,把 CodeLens 稱為程式碼的「抬頭顯示器」倒是蠻貼切的,例如可以顯示該方法有多少參考,如果有寫測試還可以顯示相關的測試總數以及通過測試的數量,另外如果專案版控是使用 Git 的話,還可以顯示該方法或是該類別的歷程與變更,

image

image

(以下兩張圖是開啟 SeedDataWithNBuilderAndFaker 專案)

image

image

不過 CodeLens 在 VS2013 並不是每個版本都有提供,只有在 VS2013 Ultimate 才有這個功能,

image

VS2015(開發)版本經過調整後只會有 Enterprise, Professional, Community 三種,而 CodeLens 除了免費的 Community 版本之外,在 Enterprise 與 Professional 都有提供 CodeLens 功能,

image

所以「Microsoft CodeLens Code Health Indicator」這個需要 CodeLens 的擴充套件在 VS2015 上除了 Community 之外都可以使用,而在 VS2013 只能在 Ultimate 裡才能使用。

 

Microsoft CodeLens Code Health Indicator

Microsoft CodeLens Code Health Indicator - Visual Studio 2013

image

image

Microsoft CodeLens Code Health Indicator - Visual Studio 2015

image

image

 

Visual Studio 2013 安裝之後的 CodeLens 顯示

image

image

Visual Studio 2015 安裝之後的 CodeLens 顯示

image

如果 Maintainbility Inde 數據是在 60 - 100 之間,就會以綠色標示,表示為有好的可維護性。

image

Maintainbility Inde 數據是在 40 - 59 之間,就會以黃色標示,表示可維護性為中等。

image

然後… 一時半刻找不到可維護性差的程式,所以這部分就給各位自己去體驗。

 

到了公司之後,在自己所負責的專案裡找找,居然還真的有不少可維護性差的程式,有些是我自己寫的,但看到一個最嚴重的,我也只能望程式而興嘆,那是從別的專案直接搬過來的程式,一開始本來有打算重寫,但是結構實在太過於複雜,所以最後只能放棄,一直以來的執行都正常,但總是覺得怪怪的,沒有一個結構性與可維護性、可測試性的核心,整個系統就是相當不踏實,改天如果真的有時間了,我一定會重寫。

CodeLens_Indecator_Maintainability_0

Difficult to Maintain Method…….
Maintainability Index: 0

 

CodeLens 設定

我們也可以設定 CodeLens 的顯示,「工具 > 選項 > 文字編輯器 > CodeLens

SNAGHTML12df4c

 


總之… 覺得這擴充套件還真的是很方便呀~

 

相關連結

CodeLens Indicator for Code Health - Microsoft Application Lifecycle Management

Visual Studio 計算程式碼度量 - Code Metrics Viewer 2013

[Tool]Visual Studio 2010 - 程式碼度量 - In 91- 點部落

MSDN - Visual Studio > 品質和診斷工具 > 測量 Managed 程式碼的複雜度和維護性 > 程式碼度量

MSDN - 尋找 CodeLens 的程式碼變更和其他記錄

 

延伸閱讀

霍爾斯特德複雜度量測 - 維基百科,自由的百科全書

 

以上

沒有留言:

張貼留言

提醒

千萬不要使用 Google Talk (Hangouts) 或 Facebook 及時通訊與我聯繫、提問,因為會掉訊息甚至我是過了好幾天之後才發現到你曾經傳給我訊息過,請多多使用「詢問與建議」(在左邊,就在左邊),另外比較深入的問題討論,或是有牽涉到你實作程式碼的內容,不適合在留言板裡留言討論,請務必使用「詢問與建議」功能(可以夾帶檔案),謝謝。