熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> .NET編程 >> 正文

淺析.NET開發過程中命名的數量和人稱

2013-11-13 10:32:32  來源: .NET編程 
    我們都明白命名的重要性如果對命名不斷地關注就需要考慮命名中的動詞和名詞特別的情況是動詞的人稱和名詞的數量
    在NET Framework的Guideline中有專門一章討論了命名規范包括大小寫單詞的選擇等卻沒有涉及到人稱和數量下面來討論一下這兩方面的內容
    名詞的數量
    首先來看數量名詞的單數和復數在語義上有著明顯的不同為了提高可讀性數量需要認真地考慮比如
    屬性(Property)SystemCollectionsGenericDictionary<TKey TValue>中的Keys和Count是好的例子字段與此類似 方法名中的名詞在JS中我們熟悉的getElementById和getElementsByTagName
    局部變量與屬性相比我們更可能遭遇的是局部變量比如用變量來表示一個人的名字可以用string name; 如果是多個人的名字則可以用List<string> names
    一般地單數表達的語義是?(復數表達的語義是*(或多個)關於名詞的數量很容易理解相關的規則也容易遵循
    動詞的人稱
    下面再來考慮動詞的人稱在需要考慮命名的對象中包括命名空間類型各種類型成員只有方法是動詞語義上表示一個行為關於它的人稱來看一個NET Framework中的例子在SystemCollectionsGenericStack<T>中有一個Contains(T item)方法對於這樣的代碼
    if (theStackContains())
    {
    // Do something
    }
    讀起來像是if the stack contains 比較通順是不是所有方法都要這樣命名呢?沒有另兩個方法Clear()和Push(T item)就不是如此這個地方很讓人困惑先寫成代碼看看
    theStackPush(
    theStackClear()
    嘗試像上面那樣作為一個句子來讀the stack push ; the stack clear語法上不對看起來也應該是第三人稱這裡我也不確定為何如此只能嘗試來解釋下考察多個集合類型和其它類型後發現所有使用第三人稱的地方都是謂詞函數除了上面的Contains(T item)還有DirectoryExists(string path)不知道這是不是其中的命名規則呢?
    還要考慮注釋
    一定程度上注釋也算是一種代碼一種是XML文檔注釋NET Framework中不管是對於類型還是類型成員都使用了第三人稱這一點我們也可以遵循其它的普通注釋應該也可以遵循這個規則
From:http://tw.wingwit.com/Article/program/net/201311/13961.html
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.