團隊內部若能統一代碼風格對於日后的項目維護大有裨益,但面對厚達十幾甚至幾十頁的代碼風格規范,開發人員難免產生抵觸心理。Python和Go等在語言層面就對代碼風格作了一定的約束,但C#並沒有,為解決這個問題,我們可以在VS中設置團隊內部要統一采用的代碼風格。
文中所用VS版本信息如下:
設置代碼風格
在VS搜索框中搜索Code Style
我們可以自定義代碼風格(注意自定義規則順序,是由上至下以此判斷是否符合規則)以及對不符合風格代碼做怎樣的處理,這里是按照錯誤進行處理
可以看到對於不符合規范的命名VS會報錯並給出改建建議:
注意,這里的錯誤是IDE1006:Naming rule violation,編譯時依然能通過(沒找到在哪里設置不允許通過編譯):
下面是代碼風格示例代碼,僅供參考:
class Person { private const string FIRST_NAME = "firstName"; private static string StaticField = "static field"; private readonly string ReadOnlyField = "readOnlyField"; private string _privateField; public Person(string privateField) { _privateField = privateField; } public void Method(int parameters) { try { var local = ""; WriteLine(parameters); } catch (Exception) { } finally { } } } delegate void DelegateType(int i); struct ValueType { public event DelegateType DelegateTypeEvent; public void DelegateType() { if (DelegateTypeEvent != null) { for (var i = 0; i < 10; i++) { DelegateTypeEvent(i); } } else { throw new NullReferenceException(); } } } interface IPerson { void Say(string parameters); } enum WeekDays { Monday, Tuesday }
工具推薦
阿里團隊的適用於JAVA代碼風格檢測插件P3C安裝到IDEA中后,會對代碼風格進行檢測並給出改進建議
小結
統一的代碼風格很重要,在編碼時我們要求代碼結構靈活易擴展,但對於代碼風格應當講究“死板”,不可靈活多變。
若團隊內部的任一成員拿到項目代碼一眼望去感覺像自己寫的,那么我們就可以認為團隊內的代碼風格已經統一了。目前,我還不贊成過於苛求細節的代碼風格約束(這種想法將來可能會變)。
