避免誤導(dǎo)
例如:
- 不要用accountList來指定一組賬號,除非它真的是List類型,可以使用accounts或者accountGroup
- 提防使用不同之處較小的名稱。
如XYZControllerForEfficientHandlingOfStrings和XYZControllerForEfficientStorageOfStrings。
有意義的區(qū)分
例如:
- 使用Product ProductInfo ProductData來表示3個不同類的話是很難區(qū)分的,因為Info和Data意義上并沒有太大的區(qū)別,容易混淆,類似的還有moneyCount和money
nameString真的比name更加清晰嗎? - 廢話是另一種沒意義的區(qū)分。Prodeuct,ProductInfo或ProductData,名稱不同,意思無區(qū)別。 廢話都是冗余,Variable一詞永遠(yuǎn)不應(yīng)出現(xiàn)在變量名中,Table一詞永遠(yuǎn)不應(yīng)出來在表名中。
再如:
getActiveAccount();
getActiveAccounts();
getActiveAccountInfo();
moneyAmount與money
customerInfo與customer
accountData與account
theMessage與message
名副其實
說起來很簡單。選個好名字需要花時間,但省下的時間比花掉的多。注意命名,一旦有好的命名,就換掉舊的。
int d;// 消失的時間,以日計。
int elapsedTimeInDays;
使用便于搜索的的名稱
單個字母或者數(shù)字常量是很難在一大堆文章中找出來。比如字母e,它是英文中最常用的字母。長名勝于短名稱,搜得到的名稱勝于自編的名稱。 竊以為單字母的名稱僅用于短方法中的本地變量。名稱長短應(yīng)與其作用域大小相對應(yīng)。
for (int j = 0; j < 34; j++){
s += (t[j]*4)/5;
}
與
int readDaysPerIdealDay = 4;
final int WORK_DAYS_PER_WEEK = 5;
int sum = 0;
for (int j = 0; j < NUMBER_OF_TASKS; j++){
int realTaskDays = taskEstimate[j] * realDaysPerIdealDay;
int realTaskWeeks = realTaskDays / WORK_DAYS_PER_WEEK;
sum += realTaskWeeks;
}
類名應(yīng)該是名詞或短語
像Customer,Account,避免使用Manager,Processor,Data或者Info這樣的類名。類名不應(yīng)當(dāng)是動詞。
方法名應(yīng)該是動詞或動詞短語
如postPayment ,deletePage或Save,屬性訪問、修改和斷言應(yīng)該根據(jù)其值來命名,并加上get,set,is這些前綴。