1. 程式人生 > 實用技巧 >Clean Code讀書筆記(1)---有意義的命名

Clean Code讀書筆記(1)---有意義的命名

名副其實

選個好名字要花費時間,但省下來的時間比花掉的多。注意命名,而且一旦發現有更好地名稱,就換掉舊的。名字一定需要符合其本意。

舉例:

要表達消逝的時間,以日記。不好的命名: int d; 好的命名: int elapsedTimeInDays

獲取訂單項Id的韓函式:

不好的命名:

List<int> GetOrderItems(Order order)
{
    List<int> list1 = new List<int>();
    foreach(var item in order.Items)
    {
        list1.Add(item.Id)
    }
  
    
return list1; }

好的命名:

List<int> GetOrderItemIds(Order order)
{
    List<int> ids = new List<int>();
    foreach(var item in order.Items)
    {
        ids.Add(item.Id)
    }
  
    return ids;
}

避免誤導

應該避免在名字中使用會產生誤導的詞。

舉例:

假如要表示一組賬戶: 不好的名字: accountList(會誤導讀者以為是List資料型別), 好的名字: accounts

做有意義的區分

當要區分兩個表示相同概念的事物時,需要做到有意義的區分。而不是僅僅是讓編譯器能通過。

舉例:

要寫一個將資料從一個數組拷貝到另一個數組的函式時:

不好的命名

public void copyNumber(List<int> numbers1, List<int> numbers2)
{
    foreach(int item in numbers1)
    {
         numbers2.Add(item);
    }
}
// numbers1和numbers2不是有意義的區分,僅僅是讓編譯通過而已。

好的命名

public void
copyNumber(List<int> sourceNumbers, List<int> destinationNumbers) { foreach(int item in sourceNumbers) { destinationNumbers.Add(item); } }

使用讀得出來的名稱

需要使用讀得出來的英語單詞進行命名。

比如我要表示一個更新時間變數。不好的命名:DateTime lastUpdatemdhms; 好的命名:DateTime lastUpdateTime.

每個概念對應一個詞

對於每個抽象概念,我們可以對應到一個特定的詞。然後在整個系統中各個模組中都使用這個詞,保持統一。比如獲取資料都用fetch或者get作為字首。

不要新增沒用的語境

只要短名稱足夠清楚,就要比長名稱好。不要給名稱新增不必要的語境。保持名稱的精煉。