一、代碼整潔之道:命名

1.名副其實

變量姨伤、函數(shù)或類的名稱應該答復了所有的大問題塑荒。比如它為什么存在,它做什么事情姜挺,應該怎么用齿税。如果名稱需要注釋來補充,那就不是名副其實炊豪。

int d;// 消逝的時間凌箕,以日計

名稱d什么野沒說明,他沒有引起對時間消逝的感覺词渤,更別說以日計牵舱。
我們應該指明計量對象和計量單位的名稱:

int elapsedTimeInDays;
int daysSinceCreation;
int daysSinceModification;
int fileAgeInDays;

2.避免誤導

程序員必須避免留下掩藏代碼本意的錯誤線索。應當避免使用與本意相悖的詞缺虐。

別用accountList來指稱一組賬號芜壁,除非它真的是List類型。List一詞對程序員有特殊意義。

提防使用不同之處較小的名稱慧妄。

XYZControllerForEfficientHandlingOfString 和另一處 XYZControllerForEfficientStorageOfString ,區(qū)分起來會很花時間顷牌。

3.做有意義的區(qū)分

如果程序員只是滿足編譯器或解釋器的需要而寫代碼,就會制造麻煩塞淹。

例如窟蓝,因為同一作用范圍內(nèi)兩樣不同的東西不能重名,你可能會隨手改掉其中一個的名稱饱普。有時干脆以錯誤的拼寫充數(shù)运挫,結果就是現(xiàn)在更正拼寫后導致編譯器出錯的情況。

public static void copyChairs(char a1[],char a2[]) {
   for(int i = 0, i < a1.length, i ++) {
        a2[i] = a1[i];
   }
}

如果修改名稱為source和destination套耕,這個函數(shù)就會像樣許多谁帕。
廢話是另一種沒有意義的區(qū)分。假如你有兩個Product類冯袍,還有一個叫ProductInfo 或者 ProductData 類匈挖,那他們的名稱雖然不一樣,意思卻無區(qū)別颠猴。

4.使用讀得出來的名稱

人類長于記憶和使用單詞关划,名稱讀不出來小染,感覺就是溝通困難翘瓮。

有家公司,程序里面寫了一個 genymdhms(生產(chǎn)日期裤翩,年资盅、月、日踊赠、時呵扛、分、秒)筐带,他們一般讀作“gen why emm dee aich emm ess”即字母的讀音今穿,有見字讀音的習慣就會讀成“gen-yah-mudda-hims”。后來人根本不知道這個名詞的意義伦籍。這是自造詞蓝晒,而非恰當?shù)挠⒄Z詞。

class DtaRcrdl02 {
  private Date genymdhms;
  private Date modymdhms;
  private final String pszqint = "102";
 ...
};
class Custmer{
   private Date generationTimestamp;
   private Date modificationTimestamp;
   private final String recordId = "102";
 ...
}

5.使用可搜索的名稱

單字母名稱和數(shù)字常量有個問題帖鸦,就是很那在一大篇文字中找出來芝薇。

找MAX_CALSSES_PER_STUDENT 很容易,找到一個數(shù)字7就很困難了作儿。

6.避免使用編碼

編碼已經(jīng)太多洛二,無畏再自找麻煩。

把類型或作用域編進名稱里面,徒然增加了解碼的負擔晾嘶。帶編碼的名稱也不方便發(fā)音妓雾,容易打錯。

PhoneNumber phoneString;// 類型變化時变擒,名稱并不變化

有時會出現(xiàn)采用編碼的特殊情形君珠。比如,你在做一個創(chuàng)建形狀的抽象工廠(AbstractFactory)娇斑。該工廠是個接口策添,要用具體的類來實現(xiàn)。怎么命名呢毫缆?IShapeFactory 和 ShapeFactory 嗎唯竹?肯定ShapeFactory。前綴字母I被濫用苦丁,說好聽是干擾浸颓,說難聽點就是廢話的程度。

7.避免思維映射

不應當讓讀者在腦中把你的名稱翻譯成他們熟知的名稱旺拉。明確是王道产上。

8.類名

類名和對象名應該是名詞,不應當是動詞

如 Custmer蛾狗,WikiPage晋涣,Account等,避免使用Manager沉桌、Processor谢鹊、Data或Info這樣的類名。

9.方法名

方法名應當是動詞或動詞短語留凭,postPayment佃扼、delegatePage、save蔼夜。屬性訪問器加上get兼耀、set和is前綴。

10.每個概念對應一個詞

給每個抽象概念選一個詞求冷,并且一以貫之瘤运。

11.別用雙關語

避免將同一單詞用于不同的目的。同一術語用于不同的概念遵倦,基本就是雙關語了尽超。

12.添加有意義的語境

很少有名稱是能自我說明的--多數(shù)都不能。反之梧躺,你需要用有良好命名的類似谁、函數(shù)或名稱空間來設置名稱傲绣,給讀者提供語境。

13.不要添加沒用的語境

只要短名稱足夠清楚巩踏,就要比長名好秃诵。別給名稱添加不必要的語境。

最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末塞琼,一起剝皮案震驚了整個濱河市菠净,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌彪杉,老刑警劉巖毅往,帶你破解...
    沈念sama閱讀 216,496評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異派近,居然都是意外死亡攀唯,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,407評論 3 392
  • 文/潘曉璐 我一進店門渴丸,熙熙樓的掌柜王于貴愁眉苦臉地迎上來侯嘀,“玉大人,你說我怎么就攤上這事谱轨〗溽#” “怎么了?”我有些...
    開封第一講書人閱讀 162,632評論 0 353
  • 文/不壞的土叔 我叫張陵土童,是天一觀的道長诗茎。 經(jīng)常有香客問我,道長娜扇,這世上最難降的妖魔是什么错沃? 我笑而不...
    開封第一講書人閱讀 58,180評論 1 292
  • 正文 為了忘掉前任栅组,我火速辦了婚禮雀瓢,結果婚禮上,老公的妹妹穿的比我還像新娘玉掸。我一直安慰自己刃麸,他們只是感情好,可當我...
    茶點故事閱讀 67,198評論 6 388
  • 文/花漫 我一把揭開白布司浪。 她就那樣靜靜地躺著泊业,像睡著了一般。 火紅的嫁衣襯著肌膚如雪啊易。 梳的紋絲不亂的頭發(fā)上吁伺,一...
    開封第一講書人閱讀 51,165評論 1 299
  • 那天,我揣著相機與錄音租谈,去河邊找鬼篮奄。 笑死捆愁,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的窟却。 我是一名探鬼主播昼丑,決...
    沈念sama閱讀 40,052評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼夸赫!你這毒婦竟也來了菩帝?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 38,910評論 0 274
  • 序言:老撾萬榮一對情侶失蹤茬腿,失蹤者是張志新(化名)和其女友劉穎呼奢,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體切平,經(jīng)...
    沈念sama閱讀 45,324評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡控妻,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,542評論 2 332
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了揭绑。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片弓候。...
    茶點故事閱讀 39,711評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖他匪,靈堂內(nèi)的尸體忽然破棺而出菇存,到底是詐尸還是另有隱情,我是刑警寧澤邦蜜,帶...
    沈念sama閱讀 35,424評論 5 343
  • 正文 年R本政府宣布依鸥,位于F島的核電站,受9級特大地震影響悼沈,放射性物質發(fā)生泄漏贱迟。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,017評論 3 326
  • 文/蒙蒙 一絮供、第九天 我趴在偏房一處隱蔽的房頂上張望衣吠。 院中可真熱鬧,春花似錦壤靶、人聲如沸缚俏。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,668評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽忧换。三九已至,卻和暖如春向拆,著一層夾襖步出監(jiān)牢的瞬間亚茬,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,823評論 1 269
  • 我被黑心中介騙來泰國打工浓恳, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留刹缝,地道東北人葡兑。 一個月前我還...
    沈念sama閱讀 47,722評論 2 368
  • 正文 我出身青樓,卻偏偏與公主長得像赞草,于是被迫代替她去往敵國和親讹堤。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,611評論 2 353