最近在看clean-code(**整潔之道) 裡面有些內容還是不錯的,所以給大家分享下。
意思是說名稱和意思要一致,更精確的說應該是看到名字就能想到意思。
對程式設計師來說取名通常是一件麻煩的事情,尤其是取乙個好的名字。
這裡擷取一段書中的**:
public list getthem()這段**有幾個」名不符實」的地方。return list1;
}
getthem 是什麼意思,獲取他們?他們是什麼?
list1 是什麼,是乙個臨時的變數?,還有更好的有意義的名字嗎?
for迴圈中的x是什麼意思?,學過譚浩強的c語言的同學基本上在for迴圈的**上都會使用 i ,j ,k ,x,y,z之類的變數,一般而言將這些變數更換為乙個好的名字通常都是有百利而無一害的。
4是乙個魔法數?為什麼是等於4,不是等於5什麼的?
我認為名副其實最重要的還是」看到名字就能自然而言想到意思」
意思是說名稱不會誤導別人,
例如取乙個函式名字是tolength32string(),但是最後返回的string長度是33,31,不是32.那麼就有問題了。
在程式設計中最容易誤導的莫過於 0 和o, 1和l 了。
如果你的vs的設定字型是:
那麼你會看到
很明顯的可以看到區別
意思是說名稱之間的區別要明顯。
例如customer == customerobject == customerinfo
或者name==namestring==namedata
所以在取名稱的時候,假設有乙個方法叫做getcustomer,那麼就 不應該出現getcustomerinfo,getcustomerdata,getcustomerobject 之類的方法了。
最經典的莫過於資料庫中的var1 ,var2,var3,var4…..之類的了,說得好聽點是保護**,難聽點就是坑爹之類的了。
匈牙利語標記法(hungarian notation,hn)
在windows的c語言api的時代,hn非常重要,傳說hn是為了紀念具有傳奇色彩的微軟程式設計師charles simonyi。這種標記法比較簡單:即變數名以表明該變數資料型別的小寫字母開始。
例如szcmdline的字首sz代表string end of zero.以0 結尾的字串。
strphone,代表phone是字串型別。
而今,大部分語言是強型別的,**編輯環境都已經先進到在編譯開始前就偵測到型別錯誤的程度!,所以hn和其他類似的格式編碼都多餘了。
它們增加了修改變數,函式,或類的名稱或型別的難度。
phonenumber phonestring;
//型別變化時,名稱並未變化。
很多程式設計師都喜歡短小精湛的名字,比如我,但是有時候短小精湛的名字被別人用了,無奈只能取另乙個名字。
縱觀大部分書籍上關於名字的長短介紹,都傾向於在名字意義明確的情況下,將名字長度盡量縮小,很多人都不喜歡長名字,比如:renderpagewithsetupandteardowns。
這個名字就用了很多單詞render,page,with,setup ,teardowns.
但是意義卻是明確的,不會產生歧義,所以別害怕長名稱,長而具有描述性的名稱,要比短而令人費解的名稱好。
Clean Code 有意義的名字
最近在看clean code 整潔之道 裡面有些內容還是不錯的,所以給大家分享下。意思是說名稱和意思要一致,更精確的說應該是看到名字就能想到意思。對程式設計師來說取名通常是一件麻煩的事情,尤其是取乙個好的名字。這裡擷取一段書中的 public list getthem return list1 這段...
cleanCode 1 有意義的命名
為什麼要有意義的命名 我們都曾經說過有朝一日再回頭清理那些糟糕的 然而最終總是棄之不顧。稍後等於永不,我們需要立即行動,寫優雅的 寫 的過程中,讀佔的比例很大,所以首先要讓 易讀。有意義命名的幾大規則 1 命名即其意 例 int dayssincecreation 2 做有意義的區分 例 由a1,a...
有意義的開始
今天真的是很值得紀念的一天,來深圳第一次過得這麼充實。原因很簡單有希望 有盼頭 第一次主動約mm出去玩 好像不是約會,是兩位兄弟幫忙約的,呵呵,再次感謝兩位好兄弟的幫助 值得紀念。一直比較膽小,尤其是現在這種處境,完全沒有什麼信心,自己真是太膽小了,總是想著兩位兄弟幫忙打頭陣,為自己鋪路,好像不大好...