《代碼整潔之道》筆記01——有意義的命名

有意義的命名

名副其實

例如代碼中如果出現thsList,theArray這些命名,應該賦予更加具有實際用途的命名。

比如用於保存用戶名的數組:usersNameArray

避免誤導

避免留下掩藏代碼本意的錯誤線索。例如:

  1. 使用了語言的預留的變量名
  2. 使用了與系統設計有誤導的命名:userNameList如果這個變量名不是一個List類型
  3. 使用大寫的O小寫的l來命名變量,使之看起來像數字的 0,1

有意義的區分

給相似屬性設置變量名是,需要從意義上做區分命名:

moneymoneyAmount區別不是很大

getUserInfogetUserMessagegetUsers,這些函數其實有點模糊,程序員怎麼能從名字就知道這個函數的具體意義?

可讀的命名

例如程序中有一個變量保存着出生日期(年,月,日)的數據使用了yearMonthsDay,雖然這個的確“有意義”,同時也有點“搞笑”,因爲它並不符合語法,屬於程序員的自造詞,所以這也是不太合適。

使用可搜索的名稱

有時候在程序編寫時,需要使用常量與長字母名稱,目的是爲了方便搜索,當然這些主要是用於一些比較特別的需求,例如保存者全局狀態的標識等。

避免使用編碼

儘量避免使用其他編碼的語言,這樣會給解碼帶來負擔。例如:成員前綴(舊時代的產物),接口實現前綴使用IName中的I是冗雜的。

避免思維映射

程序員應當避免過度“思維上的想當然”,比如在循環計數器上,程序員常用的是i,k,j這些短變量名,當然你也可以使用a,b,c來替代。但是這樣比起i,k,j而言,這幾個變量能夠讓其他程序員更明確知道這些變量是計數器變量。專業的程序員知道:明確既是王道,應當編寫出其他人能夠理解的代碼。

類名

開頭首字母大寫,不應當出現動詞。

方法名

方法名應當是動詞或者動詞短語,避免出現一些俗語,應當以明確爲主。

一個概念對應一個詞

避免出現一種操作多種詞語形容,例如:contraollermanager這2個詞語就會令人疑惑,這樣應該在一個類中或者一個模塊中選擇一個來代表一個概念。

避免歧義名稱(雙關語)

例如給數組增加一項數據,有從頭部、尾部、指定位置添加的區別,如果使用add其他程序員需要理解下代碼才知道這是頭部還是尾部添加,所以可以使用appendinsertunshift等來替代,讓其他程序員一目瞭然。

使用解決方案領域的名稱

記住,只有程序員纔會閱讀你的代碼,所以,儘管使用計算機領域的術語、名稱、模式名與數學屬於吧。

使用源自所涉問題領域的名稱

當上一個解決方案領域名稱不能滿足的時候,就採用從所涉問題領域來進行命名,至少程序員可以通過請教該問題領域專家。

添加有意義的語境

很少有名稱能自我說明,可以通過良好命名的類、函數、名稱空間來放置名稱,給讀者添加一定的語境加以聲明。如果沒這麼做,給名稱添加前綴是最後一招。

去除無意義的語境

比如:如果你的變量已經在一個GasStationDeluxe類之中了,就無需在所有變量前再添加GSD來表示說明。

小結

命名的進步需要經過一個長久的鍛鍊才能進步的,並不是通過看幾段代碼演示即可掌握的好。一個好的命名習慣是寫好代碼的基礎。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章