當團隊的所有開發人員都在同一個程式碼上工作時,也就是程式碼集體擁有的情況,大家都不希望別人改變程式碼的外觀以適應他們自己的風格。因此,通過在專案之初達成一個編碼標準,就可以增加團隊的生產率和溝通效果。
方法/步驟
命名規範
像C#這樣的面嚮物件語言允許開發人員採用敘述性的方式較靈活地命名類、方法、欄位等。對於這些型別的事物,如果可以更清楚地描述事物的含義,那麼千萬不要害怕使用較長的名稱。大家應該使用完整的單詞,而不是縮略語。
.NET有兩種主要型別的字母大小寫形式:Pascal和camel。對於Pascal字母大小寫形式來說,所建立名稱的第一個單詞的第一個字母是大寫的,該名稱中的後續單詞也是如此,例如ThisIsPascalCase。而對於camel字母大小寫形式來說,所建立名稱的第一個單詞的第一個字母是小寫的,而該名稱中的後續單詞使用大寫的字母,例如thisIsCamelCase。
匈牙利表示法(Hungarian notation)是一種在名稱內部使用的型別描述方法,可以對所命名的事物的型別提供一個提示。我們在自己的.NET編碼規範內相對保守地使用這種方法。在擴充套件Exception基類的類的命名(例如IllegalArgumentException)以及GUI元件的字首(例如sumbitBottom)中將發現這種方法的應用。
編碼規範總結#
縮排
我們可以將Visual Studio 配置為使用製表符或者空格來進行縮排,同時還可設定縮排的字元單位。日常受用的規範使用4個空格的縮排單位。
程式碼的行長對於可讀性也非常重要。試著將每一行的程式碼控制在80個字元之內。當每行的字元不超過80個,而又需要換行時,請遵循下述規則:
·在操作符前斷開
·在逗號後斷開
·對齊括號
宣告
在宣告類欄位、例項欄位或者區域性變數時,每行只宣告一個。而當在一起進行幾個宣告時,需對準欄位或者變數的名稱。對於區域性變數來說,應該在宣告變數時就進行初始化,除非您在初始化變數時,還需要執行一些其他的動作,例如計算。
宣告應該位於進行宣告的類或者方法的頂部,這樣就可以使未來對宣告的檢視變得更容易。該規則的一個例外就是for迴圈內區域性變數的宣告和初始化。
語句
C#中有多種型別的語句。每一行程式碼包含的內容不應該超過一個語句。
對於if、if-else、和if else-if else 語句來說,總是使用大括號,而對於for、foreach、while、和do-while語句來說,也總是使用大括號(大括號兩部分都應該獨佔一行)。
在return語句中,一般不要使用括號,除非為了使返回值更加明顯。
下面是使用switch語句的格式:
switch (expression)
{
case constant-expression:
statements;
break;
default:
statements;
break;
}
而try-catch-finally語句則採用下述格式:
try
{
statements;
}
catch (exception)
{
statements;
}
finally
{
statements;
}
註釋
C#中可以使用的註釋型別也有幾種。下表為每一種型別列出了一個例子,說說明了每一種型別的應用時機。
編碼規範總結#
空行與空格
儘管編譯器可以忽略空行與空格,但是空行與空格可以將不同邏輯的程式碼單元分離,從而提高程式碼的可讀性。
在下述幾種情況下應該使用一個空行:
·方法之間
·宣告和語句之間
·程式碼的邏輯段之間
·單行或者多行註釋之前
在下述幾種情況下應該使用一個空格:
·帶圓括號的關鍵字之後
·引數列表的逗號之後
·資料操作符的前後
·在for語句中,用於將語句的3個邏輯段分開
解決方案和專案組織
每個解決方案都應該擁有下述專案:
·業務專案(business project)僅存放業務專案。
·資料專案(data project)處理資料庫和其他用於檢索或者更新資料目的的遺留系統的訪問。
·表示專案(presentiation project)處理使用系統的終端使用者所需的所有檢視。
·測試專案(test project)存放應用程式所有的單元測試。