iT邦幫忙

2017 iT 邦幫忙鐵人賽
DAY 4
1
自我挑戰組

Framework 設計原則系列 第 4

命名規則(1) - Namespace, Class, Struts, Interface, Exception,Enum

  • 分享至 

  • xImage
  •  

本文重點

  1. 命名規則的基本原則
  2. Namespace 命名注意事項
  3. Class, Struts 命名注意事項
  4. Enum 命名注意事項
  5. Exception 命名注意事項

前言

也可以說是廢話

為了達到一致的程式風格

命名規則是一件重要又基本的事

也是最容易達成卻最容易忽略的事

本篇先介紹命名規則一些基本要遵循的內容

再分類別各自介紹特別需要注意的東西

今天是Type的部份,包括Namespace, Class, Interface, Exception,Enum

明天則是Member的部份,Fields, Methods, Properties, Parameters

好的,本文開始吧

基本原則

  1. 駝峰式
    已有意義的單字組成,每個單字的第一個字大寫。
    包括下列兩種情況
  • PascalCasing
    首字大寫,用於大部分的命名
  • camelCasing
    首字小寫,用在傳入的參數名稱
  1. Do Not 使用匈牙利命名法
    不要使用字首帶型態的匈牙利命名法,像是int iSize
    避免日後型態改變命名也要跟著改

  2. 避免使用特殊符號,例如 "_" or "-"

  3. 注意文字的組合順序
    容易閱讀的方式組合
    Do HorizontalAlignemt
    Do Not AlignemtHorizontal
    這點對英文程度不太好的我似乎有點困難

  4. 開發延伸版API時,使用相近的名稱
    ex: AppDomain & AppDomainSetup
    基本上我習慣前面一樣,後面加上可以識別的文字。這樣他們會排在一起比較好找

  5. 開發64bit版本時,再後面加上64
    ex: PeakWorkingSet & PeakWorkingSet64
    但是32-bit後面不要加32

因為32-bit版本程式能在32-bit與64-bit上運行,所以不用特別加上32
但是64-bit版本程式只能在64-bit運行

  1. Do Not 使用程式保留字
    就算不是開發語言的保留字,是其他語言的保留字也不要用
    各家語言的形態保留字如下
    https://msdn.microsoft.com/en-us/library/ms229045(v=vs.110).aspx#Anchor_2

  2. 避免使用縮寫。除了大家知道的常用字眼,避免使用縮寫
    常用字包括IO, Html, Xml這些
    複合字也有些不成文的使用規範如下
    http://ithelp.ithome.com.tw/upload/images/20161204/20091485MEpg2BeUny.jpg
    像是不要用ID,要用Id or id
    不要用LogOut,要用LogOff or logOff
    更多規範請參考下列網址
    https://msdn.microsoft.com/en-us/library/ms229043(v=vs.110).aspx#Anchor_1

接著來針對不同Type聊聊各自需要注意的Naming Guildeline吧

Namespace

  1. PascalCasing

  2. 階層順序
    <Company>.(<Product>|<Technology>)[.<Feature>][.<Subnamespace>]
    第一層為公司名稱,避免其他公司開發類似的產品造成衝突
    第二層為產品或使用的技術

  3. 原則上使用PascalCasing,但如果品牌名稱有特殊大小寫。就照品牌名稱

  4. 不要 使用部門或組織名稱當Namespace
    因為這是一個不穩定的名稱,畢竟有些部門生命週期很短。you know

  5. Namespace名稱不要跟Type的名稱一樣

  6. 開發不同版本的功能時,不要在Namespace加上技術名稱
    ex: Do Not Microsoft.VisualBasic

Interface

  1. PascalCasing

  2. 使用"I"開頭

  3. 使用形容詞或名詞

Class, Struct

  1. PascalCasing

  2. 使用名詞組成

  3. 以下是繼承或使用一些常用的class要注意的地方
    像是Stream之類的,請參考連結

Enum

  1. PascalCasing

  2. 不要在名稱後面加上 "Enum" or "Flag"

  3. 裡面的Member不要加上 Enum 的名稱當prefix

  4. 複數詞的enum請使用flags enum (這個我沒用過,也許之後會補充說明)

[Flags]
public enum CosoleModifiers{
    Alt,
    Control,
    Shift
}

Exception

  1. PascalCasing

  2. 字尾加上"Exception"


關於今天的內容,大致上都是我在MSDN上預習過的

有興趣的可以參考 https://msdn.microsoft.com/en-us/library/ms229002(v=vs.110).aspx

除了鐵人文章之外,我也將這些內容整理成我的gitbook

以便日後參考應用

這個部分在我買書之前就已經在MSDN上先看過了

雖然大部分的內容都差不多,但書上多了一些解釋

還有一些作者群的經驗談

像這塊下途中灰底的部份就是敘述他們當初如何決定Naming style的小故事

http://ithelp.ithome.com.tw/upload/images/20161204/200914859tjYrqhT4F.jpg

因為12/4要去爬山,怕忘了po。只好在半夜搶先送出


上一篇
設計Framework的基本原則
下一篇
命名規則(2) - Fields, Methods, Properties, Parameters, Events
系列文
Framework 設計原則30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言