文章目錄
Visual Studio 的 Code Clone 重複程式碼分析工具
最近的工作是針對一個大型既有專案做程式碼品質改善,當時接到這個任務時,對於這個專案我心裡大概就有幾個想法:
- 重要性高
- 複雜度很高
- 可維護性低
- 可測試性低
- 功能及需求文件不全
- user 不一定清楚所有功能用途
照這個概念去發想,也能得出專案由來已久,經手人數眾多,coding style 不一致的現象,很多人都想要打掉重練,無奈成本太高,很難有這麼資源可以重寫一套,所以便退而求其次地進行重構及品質改善計劃
在實際對程式碼進行重構前,一定要先了解對手的實力XD,在之前文章 Visual Studio 2017 如何使用 Code Map 功能 有粗略提到 Code Map 可以幫助我們快速了解專案的關聯性以及實際執行流程。針對程式碼品質,今天就看看 Visual Studio 的另個工具:Code Clone 重複程式碼分析工具,透過 Code Clone 的分析,我們可以快速取得專案內複製貼上的程式碼位置與數量
需要留意的是 Code Clone 功能僅在 Visual Studio Premium 以上版本才有
分析專案重複程式碼
Visual Studio 主選單 Analyze –> Analyze Solution for Code Clones
分析結果
- Clone Group
Match Type
> 依程式碼相似程度分為以下四種 match 類型
- Exact Match
- Strong Match
- Medium Match
- Weak Match
Files
> 重複程式碼出現的檔案數量
Clone Count
程式碼重複次數
快顯效果
滑鼠移至檔案名稱上,會出現重複程式碼的快顯視窗
比較檔案
可以在分析結果視窗中選取多個檔案進行重複程式區塊比對
shift+滑鼠左鍵(多選檔案)-->滑鼠右鍵--> Compare
針對特定程式碼尋找是否重複
選取特定程式碼–>滑鼠右鍵–> Find Matching Clones in Solution
尋找結果
Visual Studio 2017 如何使用 Code Clone 功能
加入方法與 Visual Studio 2017 如何使用 Code Map 功能 所提方式一致,vs 2017 為了提升安裝速度,將多數工具改列可選擇性的安裝項目,Code Clone 便是其一
重新執行 Visual Studio 2017 安裝檔 –> Modify
Individual components –> Code tools –> 勾選
Code Clone
–> Modify
其他更多功能
- 如何排除特定檔案
- 關於 code clone 的搜尋標準
請參考 Visual Studio 2012 New Features: Code Clone Analysis
參考資訊
文章作者 Yowko Tsai
上次更新 2021-10-14
授權合約
本部落格 (Yowko's Notes) 所有的文章內容(包含圖片),任何轉載行為,必須通知並獲本部落格作者 (Yowko Tsai) 的同意始得轉載,且轉載皆須註明出處與作者。
Yowko's Notes 由 Yowko Tsai 製作,以創用CC 姓名標示-非商業性-相同方式分享 3.0 台灣 授權條款 釋出。