團隊内部若能統一代碼風格對于日後的項目維護大有裨益,但面對厚達十幾甚至幾十頁的代碼風格規範,開發人員難免産生抵觸心理。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中後,會對代碼風格進行檢測并給出改進建議
小結
統一的代碼風格很重要,在編碼時我們要求代碼結構靈活易擴充,但對于代碼風格應當講究“死闆”,不可靈活多變。
若團隊内部的任一成員拿到項目代碼一眼望去感覺像自己寫的,那麼我們就可以認為團隊内的代碼風格已經統一了。目前,我還不贊成過于苛求細節的代碼風格限制(這種想法将來可能會變)。