---
# System prepended metadata

title: Clean Code - Ch02 命名
tags: [Clean Code, Book]

---

# Clean Code - Ch02 命名

有意義的命名，如果名稱需要註解來輔助，這就是一個不合格的名稱

## 1. 不要使用無意義的名稱，沒辦法讓閱讀者直接看懂變數、函數的意義
``` csharp
var List1 = new List<string>();
var numA = 1;
```
## 2. 避免誤導，取名要盡量避免跟已經存在的名詞相衝
``` csharp
var hp = 100; // HighPoint 可能跟 '電腦品牌' 或 '血量' 混淆
```
## 3. 使用的名詞應該意義不同，或是不該用無意義的名詞

|Situation|Name1|Name2|
|-|-|-|
|名詞意義相同|MemberInfo|MemberData|
|多餘的名詞|Abook|TheBook|
|多餘的名詞|MoneyAmount|Money|

## 4. 名稱要可以唸出來，不該靠縮寫讓人猜測含意
**不好的範例：**
> function GenerateDate() vs. fucntion GenYMDHMS()

## 5. 類別(Class)應該要用名詞來命名，不該是動詞
> Customer,Data,Info,etc.

## 6. 方法(Method)應該要用動詞來命名
> GetCustomer,UpdateData,DeleteCustomerInfo,etc.

## 7. 使用一致的詞彙，不要用一堆類似的名詞造成干擾，容易讓人以為是不同的東西
> GetCustomer, FetchCustomr, RetriveCustomer
## 8. 不該隨意增加不相關的詞到名稱中
> 假設你的APP叫做Gas Station Deluxe，然後縮寫叫GSD
> 然後如果你需要一個 AccountAddress，此時不該將其叫做 GSDAccountAddress

###### tags: `Clean Code` `Book`