編碼規范參考


編碼規范參考

我本人不太推薦制定過細的編碼規范。制定編碼規范是為了增強代碼的可讀性,畢竟代碼的結構才是主要關注問題,所以我的編碼規范還是比較簡短的。里面只是對可能會破壞編碼風格的行為進行約束,而沒有細化到“空行”甚至“空格”的級別。

編碼規范

一 命名空間

<公司名稱>.(<產品名稱>|<相關技術>)[.<用途>] [.<子命名空間>]

二 代碼風格

  • 花括號“{}”不允許省略,即使只有一段代碼。
  • 不允許省略訪問修飾符。
  • 類型默認是密封的。
  • 不允許公開字段。
  • 使用括號“()”來強調運算符優先級。

三 命名規范

(一) 類、結構和接口的命名

  • 使用名詞或名詞短語。
  • 使用Pascal方式。
  • 在接口名稱前加上前綴“I”。
  • 考慮在派生類末尾使用基類的名字。
  • 如果該類僅僅為了實現某個接口,那么請保持其與接口命名的統一。
  • 如果從.NET 框架中存在的類型派生的類型,應該遵循以下規范:
 基類  派生類
 System.Attribute  要給自定義的特性添加“Attribute”后綴
 System.Delegate  要給用於事件處理的委托添加“EventHandler”后綴

 

要給用於事件處理之外的那些委托添加“Callback”后綴

不要給委托添加“Delegate”后綴

 System.EventArgs  要添加“EventArgs”后綴
 System.Exception  要添加“Exception”后綴
 IDictionary,IDictionary<T,V>  要添加“Dictionary”后綴
 IEnumerable,ICollection,IList,

 

IEnumerable,ICollection,IList

 添加“Collection”后綴
 System.IO.Stream  添加“Stream”后綴
 CodeAccessPermission,IPermission  添加“Permission”后綴

(二) 成員的命名

 成員  大小寫  規范
 方法  Pascal(公開)、Camel(私有)  用動詞或動詞短語命名
 屬性  Pascal  用名詞、名詞短語或形容詞來命名

 

集合屬性應該使用復數形式,而不是添加后綴

用“Is”、“Can”、“Has”等表示布爾屬性

可以用屬性的類型名來命名屬性

 事件  Pascal  使用動詞或動詞短語來命名事件

 

用現在時和過去時來區分前置和后置事件

 字段  Camel(私有)  要用名詞、名詞短語或形容詞來命名

 

不要加任何前綴

(三) 參數的命名

  • Camel風格。
  • 要使用left和right來命名重載的二元操作符的參數——如果參數沒有具體的含義。
  • 要使用value來命名重載的一元操作符的參數——如果參數沒有具體的含義。
  • 不要在參數中使用數字編號。
  • 盡量使用描述性的名字命名泛型類型參數,並在前面使用“T”前綴。

(四) 常量、變量的命名

  • 常量——所有單詞大寫並用“_”分隔。
  • 局部變量——Camel風格。

(五) 枚舉的命名

  • Pascal風格。
  • 使用名詞的復數形式來命名標記枚舉。
  • 不要添加“Enum”或“Flag”后綴。
  • 不要給枚舉類型值的名字加前綴。

(六) 資源的命名

  • Pascal風格。
  • 僅使用字母、數字和下划線。
  • 在命名異常消息的資源時,資源標識符應該是異常類型名加上簡短的異常標識符。

(七) 數據庫命名

  • 表——“模塊名_表名”。
  • 字段——bool類型用“Is”、“Can”、“Has”等表示;日期類型命名必須包含“Date”;時間類型必須包含“Time”。
  • 存儲過程——使用“proc_”前綴。
  • 視圖——使用“view_”前綴。
  • 觸發器——使用“trig_”前綴。

(八) XML命名

節點名稱使用Pascal風格,屬性名稱使用Camel風格。

四 注釋

  • 對接口和復雜代碼塊必須進行注釋。
  • 修改代碼時保持注釋同步。
  • 未完成的功能使用TODO標記。
  • 修改他人代碼時要先注釋對方代碼,並寫明修改原因,不允許隨便刪除他人代碼。
  • 發布前移除無用注釋。

五 異常處理

  • 原則上只允許顯示拋出InvalidOperationException、ArgumentException、ArgumentNullException和ArgumentOutOfRangeException四種異常類型。
  • 在自定義異常時,必須使用VS提供的代碼模板來創建自定義異常。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM