透過 EditConfig 統一程式碼風格

RojerChen.2023.03.30

軟體開發是自由的,只要能夠符合功能,程式碼想要怎樣寫都可以。

但是這就會發生同樣的程式碼有多種不同的寫法,好比下面這段程式,功能一樣,而你比較喜歡哪一種風格?


通常我們在開發軟體的時候,團隊都會制訂所謂的 Coding Standard,好比說變數應該要怎樣命名、換行的規則等等。但是制定歸制定,如果沒有 Code Review 或是透過工具控卡,久而久之你就會發現程式碼充斥的各種風格。

如果想要避免這樣的情況發生,可以使用 editconfig 統一程式碼風格,可以在一定程度上協助你避免這樣的問題。目前已經有很多編輯器都有內建支援 editconfig 了,以 Visual Studio 為例子,你可以透過新增 editconfig 來設定自己團隊的程式碼風格。


在 GitHub 上面有人有分享 editconfig 設定,裡面還有額外定義 Interface 等相關的規則,有興趣可以參考一下https://github.com/RehanSaeed/EditorConfig/blob/main/.editorconfig

自動排版

設定完畢之後,透過編輯器自動排版 (Ctrl+k , D),就可以讓程式碼風格統一。好比 else 到底要不要換行,只要設定後,後續就交給編輯器自動排版就好。

透過錯誤、編譯失敗限制團隊成員

有一些項目是無法透過編輯器自動排版來達成,好比變數的命名規則、傳遞的參數規則等等,而這些項目就可以透過設定讓 IDE 顯示錯誤、編譯失敗來提醒開發人員。


.NET Framework

.NET Framework 對於程式碼分析 Code Analysis 使用的是 ruleset,所以設定後資料會存在 ruleset 而非 editconfig。唯一美中不足的是, IDE 只能提示錯誤,無法讓其編譯直接失敗

.NET Core

.NET CORE 已經把 ruleset 整合在 editconfig 了,目前在 .NET 7 的測試下,可以強制編譯失敗,我覺得這樣非常好,因為當編譯失敗,開發人員才會去釐清哪裡出了問題,才會去著手修改

使用心得

Visual Studio 編輯 editconfig 的 UI 有一點 BUG,你需要反覆確認有無存檔,建議直接使用其他文字編輯器編輯 editconfig 比較方便。

如果你覺得 editconfig 能夠限制的條件有限,實務上建議可以額外搭配 StyleCop,與 editconfig 不同的是,違反 StyleCop 的規則是可以強制編譯失敗的,不論在 .NET Framework 或是 .NET Core 都可以。


延伸閱讀


Visual Studio:使用 Web Compiler 編譯 SCSS 檔案

    Blogger Comment

0 意見: