[ASP.NET Core] 使用 StyleCop Analyzers 規範程式代碼

透過 StyleCop.Analyzers 來針對 .NET Core 專案代碼進行規範,避免個人寫作風格太過強烈。

前言


在多人開發的專案中,即使開發準則文件定義的再詳細都沒有用,主要的原因並非成員不想遵守,而是沒有一個明確的方式讓成員知道這樣的寫法已經與團隊開發規範相牴觸了;因此本文希望透過 StyleCop.Analyzers 來針對 .NET Core 專案代碼進行規範,讓工具時時提醒你我,避免個人寫作風格太過強烈。以下介紹。

 

 

安裝套件


於方案上右鍵點選 Manage NuGet Packages for Soluction 來開啟 NuGet 管理介面。

 

將所有專案都安裝 StyleCop.Analyzers 套件,目前版本為 v1.0.2 版。

 

 

立即見效


安裝後就會看到 Error List 中開始出現一些警告訊息出現了,這表示 StyleCop.Analyzers 開始發揮作用,針對所有代碼掃瞄並做初步符合規定的警告。

  • 記得要開啟 Error / Warnings 過濾器,讓該類型的資料可以出現在下方清單列。
  • 點選 Code 超連結 (ex. SA1633),會連至該規則的官方說明文件。
  • 雙擊任何一條錯誤可連結至不合乎規範的代碼位置,可透過 Ctrl + . 快捷鍵來進行快速修正。

 

開發過程中也可以即時看到不符合規範的代碼(代碼下方會出現紅色線),提醒自己是否正違反團隊開發規範。

 

 

移除檢核規則


在專案中展開 Analyzers 後可看到 StyleCop.Analyzers 定義的所有規則。

 

假設不需要 SA1200 這項規則時,可以按下滑鼠右鍵透過 Set Rule Set Severity 來決定這項規則的嚴重性,可選 None 表示不需要。

 

點選後會自動產生與專案名稱相同的 ruleset 檔案,裡面會記載這個專案需套用的客製化規則為何。

 

以 XML 方式開啟後,確實已設定在違反 SA1200 規範時為 None 不動作。

 

專案檔會透過 CodeAnalysisRuleSet 標籤來放置此專案的檢核規則 ruleset 檔案路徑。

 

此時可以看到剛剛移除的 SA1200 已經不再錯誤清單中了。

 

 

套用方案層級的檢核規範


因為方案中有很多專案,如果每個專案都訂一個會很亂,因此最好的做法就是訂定一個 ruleset 檔案,讓方案中的所專案共同遵守;首先需在方案上按下新增項目,來新增一個 ruleset 檔案。

 

預設會放置在方案總管的 Solution Items 資料夾中,不過實際的檔案路徑就是在根目錄下。

 

接著可以把專案中設定過的 ruleset 檔案更名去覆蓋他,讓整個方案內都套用此客製化規則。

 

接著把「所有專案檔」以文字開啟,設定 CodeAnalysisRuleSet 標籤並將路徑就指向根目錄那個 ruleset 即可。

  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|AnyCPU'">
    <CodeAnalysisRuleSet>..\TLTS.ruleset</CodeAnalysisRuleSet>
  </PropertyGroup>

  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
    <CodeAnalysisRuleSet>..\TLTS.ruleset</CodeAnalysisRuleSet>
  </PropertyGroup>

 

 

參考資訊


好代碼是管出來的 - .Net中的代碼規範工具及使用

 

 


希望此篇文章可以幫助到需要的人

若內容有誤或有其他建議請不吝留言給筆者喔 !