《代碼整潔之道》第2章:有意義的命名——學習筆記

  • 軟件中命名隨處可見。變量、函數、參數、類、封包,源代碼、目錄,等等;

名副其實

不規範:

int d;

規範:

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

避免誤導

  • 避免留下掩藏代碼本意的錯誤線索,儘量避免使用與本意相悖的詞;

經典錯誤: 小寫字母“l”和大寫字母“O”,容易看錯!!

int O;
int a,l;
if (O == 1)
	a = 1;
else
	l = 1;

做有意義的區分

  • 程序員如果只是爲滿足編譯器或解釋器的需要修改代碼,就會製造麻煩;

經典錯誤: 以數字系列命名(a1, a2, …,aN),純屬誤導,完全沒有提供正確信息,沒有提供作者意圖的線索。

使用讀得出來的名稱

  • 不要自己創造單詞

使用可搜索的名稱

在這裏插入圖片描述

避免使用編碼

  • 編碼已經太多,不要再自找麻煩

  • 不要再使用匈牙利命名法(變量名 = 類型名+變量名)了!

  • 也不要使用“m_”前綴來標明成員變量了。應該把類和函數做得足夠小,消除對成員前綴的需要。讓前綴編程廢料,變成舊代碼的標誌物。
    在這裏插入圖片描述

避免思維映射

  • i,j,k 就是典型的循環計數器思維映射;
  • 專業程序員瞭解“明確纔是王道”,專業程序員善用其能,編寫其他人能理解的代碼;

類名

  • 類名和對象名應該是名詞或者名詞短語,如Customer、WikiPage、Account和AddressParser,避免使用Manager、Processor、Data或Info這樣的類名。
  • 類名不應當是動詞;

方法名

  • 方法名應當是動詞或動詞短語,如postPayment、deletePate或save。

每個概念對應一個詞

  • 不要給多個類的同種方法名命名爲fetch、retrieve和get!等同義詞
  • 又是controller又是manager,還有driver就會令人困惑

別用雙關語

  • 一個add方法,表達了不同意思就是雙關語,這是用應該用近義詞append、insert等詞語代替;

使用解決方案領域名稱

  • 只有程序員纔會讀你的代碼,儘量使用 計算機科學(CS)術語、算法名、模式名、數學術語吧!
  • 取技術性名稱,通常是最靠譜的做法;

添加有意義的語境

  • 很少有名稱是能自我說明的——多數都不能;
  • 你需要用良好命名的類、函數或命名空間來放置名稱;

不要添加沒用的語境

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

  • 重命名,如果名稱改的更改,那大家真的會感激你。

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