.NET設計規范一:設計規范基礎


  前一段時間閱讀了“.NET設計規范”這本書,讀后給我的感覺是規范對開發人員有着舉足輕重的重要,可能我們都有自己的想法,但我相信遵循這些前輩們總結的規范將給我們的開發帶來裨益,所以熟知這些開發規范並養成良好的習慣是需要我們堅持的,慢慢這些規范將潛移默化的影響着我們!

  1.80/20原則

    所謂的80/20原則,是在一些特殊情況下,要重視那“20%”的部分,“80%”的部分可以減輕重視度,其實我們大多數人都知道有這么一個原則,但是我還沒有真正的把這個原則用於實踐中去,如果你常用這個原則去審視一些大型項目的話,那里面就會有很多設計用刀這個原則的,比如前一段時間一篇文章關於“baidu”以及“Google”的分頁問題,它就很好的運用了80/20這一個原則,好了,不多說了,開始規范之旅...

 

    2.類型命名規范

    2.1大小寫規范

      有兩種命名術語:①PascalCasing → 帕斯卡命名法 (單詞的首字母要大寫)

              ②camelCasing → 駝峰命名法 (第一個單詞的首字母小寫)

      注意事項:

      ①要把“camelCasing ”規范用於參數以及變量的命名

      ②命名時不要使用首字母縮寫 ,除了特殊情況,如 → System.IO

      ③“PascalCasing”使用的主要區域為 → 圖示 

       

        

    2.2類型名稱單詞的選擇

      ①要為名稱選擇易於閱讀的名字

      ②不要跟C#中的關鍵字產生沖突      

      ③不要使用單詞縮寫以及單詞的首字母縮寫

      ④不要使用那些還沒有流行的首字母縮寫

      ⑤選擇的單詞要有含義

 

    2.3命名空間

      規范:簡單易懂,並具有概括性

      

      具體規范如下:

       ①使用公司名作為前綴

                 ②使用穩定的,與版本無關的產品名稱作為空間的第二層!

                 ③使用PascalCasing大小寫風格!

                 ④考慮在適當的名稱中使用復數 → System.Collections

                 ⑤不要引入太一般的類型名,如Log,Message,應該在它們之前加上限定詞!

       Note:書中有介紹程序集的章節,只可惜我對它理解的不是很好,就沒有寫上來!

 

    2.3類,結構,接口的命名

      Note:類型名應該是一個名詞名詞詞組,如果沒有為類型名找到一個很好的名詞或名詞詞組,那么應該考慮重新設計名稱了!

      選擇名稱的方法:首先你要知道你設計的類型應用於哪個場景,知道這個場景是干嘛的,然后選擇合適的名詞或名詞詞組進行設計!

      如:Stream,StreamReader,TextReader,StringReader這一類的名稱設計,或者我要設計一個Json的操作類庫,可以命名為 → JsonOperation

      具體規則:      

       ①使用名詞或名詞詞組進行命名,並采用“PascalCasing”大小寫風格!

                 ②不要給任何一個類型名加前綴,這是大忌(接口除外)!

                 ③考慮讓派生類的名稱以基類的名稱結尾

                      如:Exception,它所有的派生類都是以“Exception”基類名稱結尾!

                           或者是“Attribute”之類的

       .NET Framework中的一些派生類命名規則(詳細的在后一篇文章會涉及到),圖示:

 

         

                 ④接口 → 以字母“I”為前綴開頭,這樣使用者就一目了然,這是一個老習慣了!

                 ⑤應該使得實現接口的類型名跟接口名只相差一個字母“I”!

        如:接口IJsonOperation,實現它的類名稱應該為 → “JsonOperation”

 

    2.4泛型類型參數的命名      

      ①要盡可能的用描述性的名字來命名泛型類型參數,應該在單詞前面加上前綴“T”

      

      ②考慮用“T”來命名參數類型

                       如果只有一個參數類型,如 → List<T>

      ③如果泛型參數有了泛型約束,應該把約束的類型名追加的泛型參數上

                       可以把一個被限制為ISession接口的類型參數命名為 → “TSession”

    

    2.5枚舉類型的命名

      ①也要遵守“PascalCasing”大小寫規范

      ②要用單數名詞來命名枚舉類型

      ③要用復數名詞來表示“位標記(Flags)”的枚舉類型,如:

1    [Flags] 2     public enum Colors //如果是為標志,建議采用復數的形式 3  { 4  Read, 5  Black, 6  Yellow 7     }

      ④不要給枚舉名添加“Enum”或者“Flag”或“Flags”的后綴,也不要添加前綴

    

    雖然很基礎,但是對於我們這些門外漢有着舉足輕重的作用,一起努力!

    下一篇:.NET設計規范二:類型成員設計


免責聲明!

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



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