代碼規范在研發項目團隊中有着重要作用,團隊統一代碼規范,有助於提升代碼可讀性以及工作效率。
代碼規范主要包括命名、版式、注釋等幾個方面:
其中命名包括變量、類、方法、文件名、數據庫、表、字段、接口等方面。
版式包括縮進、換行、對齊、大括號、循環體、邏輯判斷等方面。
注釋包括包注釋、文件注釋、類注釋、方法注釋、參數注釋、變量注釋、代碼片段注釋等。
那么微軟官方本身也是擬了一些草稿規范的,傳送門:C# 6.0 草稿規范,拜讀了官網后,感覺就是一個標准的官方發言,然后分段整理整理了一下。
PS:當前更新命名規范,更多還在持續整理中。
命名規范:
所有命名(類名、屬性名、變量名、常量名、屬性名)必須以字母開頭(a-z、A-Z),不能以特殊字符(_、$)開頭。
1、【強制】類名命名規則:大駝峰命名法【DTO、POCO、VO等除外】
public class UserInfo{}
2、【強制】屬性命名規則:大駝峰命名法
public string UserInfo { get; set; }
3、【強制】字段、參數、成員變量、局部變量命名規則:小駝峰命名法
public string userName; public string GetUserName(string userId) { return "userName"; }
4、【強制】方法/函數命名規則:大駝峰命名法
public int GetUserInfo() { }
5、【強制】常量命名規則:名稱全部大寫,單詞間用下划線_分開
public const string USER_NAME = "userinfo";
6、【強制】DTO、POCO、VO命名規則:大駝峰命名法+DTO/VO/POCO等
public class UserInfoDTO { } public class UserInfoVO { } public class UserInfoPOCO { }
7、【強制】命名空間命名規則:大駝峰命名法
namespace UserInfo { }
8、【強制】枚舉命名規則(枚舉名稱采用大駝峰命名規則,枚舉成員所有名稱也使用大駝峰命名法)(沒有特殊情況的話,枚舉成員建議從默認值0開始)
public enum UserState { Success, Fail }
9、【強制】代碼中所有成員禁止直接使用中文的命名方式,禁止使用中文拼音命名(一些通用的命名除外:比如城市可以采用beiJing、shangHai這樣的命名規則是可以的),禁止使用中英文混合命名方式,禁止出現a、b、c、aa、ss、x、xx等毫無意義的命名方式
10、【推薦】復數類型(集合類、數組等)命名規則:優先以小寫字符s結尾,如果單詞最后的字母就是s或其他不適合s結尾的單詞,可以使用復數類型的類型名稱結尾(如List、Array等結尾)。前面規則如果都不好命名,可自行命名
public List<string> userNames { get; set; } public string[] userNameArray { get; set; } public List<string> userNameList { get; set; }
11、【強制】接口命名規則:以大寫字母I開頭+類名稱
public interface IUserInfo { }
12、【強制】異常類命名規則:大駝峰命名法+Exception
public class UserInfoException { }
13、【強制】項目命名規則:大駝峰命名法,各個字母之間用字母(.)隔開
XiongZe.ProjectManagement.Services
14、【推薦】業務層和數據層名命名規則:業務層類庫名稱命名規則:以Service結尾、數據層類庫命名規則:以Repository結尾
- 獲取數據的方法以Get開頭(加上要獲取的對象名)。如獲取單個對象,可以使用Get()、GetUserInfo()。獲取復數對象(集合類),可以使用Gets()、GetUserInfos()。
- 新增數據的方法以Insert開頭(加上要獲取的對象名)。如往數據庫中新增一條記錄,方法命名為Insert()、InsertUserInfo()。往數據庫中新增多條記錄,方法命名為Inserts()、InsertUserInfos()。
- 刪除數據的方法以Delete/Remove(加上要刪除的對象名)。如刪除數據庫中的一條記錄,方法命名為Delete()、DeleteUserInfo()。刪除數據庫中的多條記錄,方法命名為Deletes()、DeleteUserInfos()。
- 修改數據的方法以Update開頭(加上要修改的對象名)。如修改一條數據信息,方法命名為Update()、UpdateUserInfo()。修改多條數據的信息,方法命名為Updates()、UpdateUserInfos()。
編碼規范可以改善軟件的可讀性,可以讓程序員盡快而徹底地理解新的代碼。
為了執行規范,每個軟件開發人員必須一致遵守編碼規范:
- 使用統一編碼規范的主要原因,是使應用程序的結構和編碼風格標准化,以便於閱讀和理解這段代碼;
- 好的編碼約定可使源代碼嚴謹、可讀性強且意義清楚,與其它語言約定相一致,並且盡可能的直觀。
高質量的代碼往往具有如下特質
- 易懂性 – 代碼必須易讀且簡單明確的。它們必須能展示出重點所在,且代碼應該做到易於重用,不可包含多余代碼,它們必須帶有相應文檔說明。
- 正確性 – 代碼必須正確展示出其要告知使用者的重點。代碼必須經過測試,且可以按照文檔描述進行編譯和正確運行。
- 一致性 – 代碼應該按照一致的編程風格和設計來保證代碼易讀。 同樣的,不同代碼之間也應當保持一致的風格和設計,讓使用者能夠很輕松的結合使用它們。一致性能將我們代碼庫優良的品質形象傳遞給使用者,展示出我們對於細節的追求。
- 流行性 – 代碼應當展示現行的編程實踐,例如使用 Unicode,錯誤處理,防御式編程以及可移植性。代碼應當使用當下推薦的運行時庫和API函數,以及推薦的項目和生成設置。
- 可靠性 – 代碼必須符合當地法律,隱私和政策標准和規范。不允許展示入侵性或低質的編程實踐,不允許永久改變機器狀態。所有的安裝和執行過程必須是可以被撤銷的。
- 安全性 – 代碼應該展示如何使用安全的編程實踐 :例如最低權限原則,使用運行時庫函數的安全版本,以及SDL推薦的項目設置。
合理使用編程實踐,設計和語言特性決定了示例代碼是否可以很好滿足上述特性。
以上,只是規范不是規定,所以不是強制要求一定要這樣做,大家自取所需就好了。
如有不合理之處,也接受大家的批評指正。
歡迎關注訂閱微信公眾號【熊澤有話說】,更多好玩易學知識等你來取
作者:熊澤-學習中的苦與樂 公眾號:熊澤有話說 出處: https://www.cnblogs.com/xiongze520/p/15508064.html 您可以隨意轉載、摘錄,但請在文章內注明作者和原文鏈接。
|