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

來源:互聯網
上載者:User
關鍵字 淺析 開發過程 注釋 可以 遵循

我們都明白命名的重要性,如果對命名不斷地關注,就需要考慮命名中的動詞和名詞,特別的情況是動詞的人稱和名詞的數量。

在.NET Framework的Guideline中,有專門一章討論了命名規範,包括大小寫、單詞的選擇等,卻沒有涉及到人稱和數量,下面來討論一下這兩方面的內容。

名詞的數量

首先來看數量。 名詞的單數和複數在語義上有著明顯的不同,為了提高可讀性,數量需要認真地考慮。 比如:

屬性(Property):System.Collections.Generic.DictionaryTKey, TValue中的Keys和Count是好的例子。 欄位與此類似; 方法名中的名詞:在JS中我們熟悉的getElementById和getElementsByTagName; 區域變數:與屬性相比,我們更可能遭遇的是區域變數。 比如,用變數來表示一個人的名字,可以用string name; 如果是多個人的名字,則可以用Liststring names。

一般地,單數表達的語義是?(0或1);複數表達的語義是*(0、1或多個)。 關於名詞的數量很容易理解,相關的規則也容易遵循。

動詞的人稱

下面再來考慮動詞的人稱。 在需要考慮命名的物件中,包括命名空間、類型、各種類型成員,只有方法是動詞,語義上表示一個行為。 關於它的人稱,來看一個.NET Framework中的例子。 在  System.Collections.Generic.StackT中,有一個Contains(T item)方法,對於這樣的代碼:

if (theStack.Contains(1)){ // Do something.}

讀起來像是:if the stack contains 1,比較通順。 是不是所有方法都要這樣命名呢? 沒有。 另兩個方法Clear()和Push(T item)就不是如此,這個地方很讓人困惑。 先寫成代碼看看:

theStack.Push(3);theStack.Clear();

嘗試像上面那樣作為一個句子來讀:the stack push 3; the stack clear,語法上不對,看起來也應該是第三人稱。 這裡我也不確定為何如此,只能嘗試來解釋下。 考察多個集合類型和其它類型後發現,所有使用第三人稱的地方都是謂詞函數,除了上面的Contains(T item),還有Directory.Exists(string path),不知道這是不是其中的命名規則呢?

還要考慮注釋

一定程度上,注釋也算是一種代碼。 一種是XML文檔注釋,在.NET Framework中,不管是對於類型還是類型成員,都使用了第三人稱,這一點我們也可以遵循。 其它的普通注釋應該也可以遵循這個規則。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.