**就是程式設計師的孩子,給「孩子」取個好聽的名字很重要!我們在專案開發中,接觸到的變數、函式、類多數都是專案自己定義的,往往都是為了解決一些特定的領域的問題,引入了各種各樣的概念,**裡面的名字就對應著問題領域或方案領域的這些概念,所以,對於乙個命名良好,**規範,設計簡潔的系統,要想非常快的理解乙個系統,最直接的方式就是rtfc(read the ****ing code)。對於乙個不斷演進的系統,**的可讀性至關重要,首要要解決的問題就是名字,變數名、函式名、類名等都需要仔細斟酌,認真對待,乙個能夠簡潔,能夠清晰表達概念和意圖的名字就顯得尤為重要。
閱讀《**整潔之道》這本書後發現其中說的內容在我們自己專案中比比皆是,隨便拿出一塊**都可以當做反面教材給大家講半天。長時間積累,導致**發霉變質,取名也是毫無章法,信手拈來。閱讀這樣的**,撞南牆的心都有了。下面結合自己專案中的問題和《**整潔之道》談談關於命名相關的原則。
bad:
intt =good:currenttime
.elapse(e
);// 消逝的時間,以毫秒計
...if(t
>
timeout_value
)
intbad:elapsed_ms
=currenttime
.elapse(e
);...if(
elapsed_ms
>
timeout_value
)
stdbad:::vector
account_list
;// _list就是乙個誤導, accounts會更好
bool
sendtozoneserver
();// 和下面的函式差別很小
bool
sendtozoneservers
();// sendtoallzoneservers會好點
voidgood:copy
(chara1,
chara2)
void猜一猜下面的類是幹什麼的?和別人怎麼說這幾個類?copy
(char
source
,char
dest
)
根據這些簡直**的縮寫,如果沒有注釋基本上很難知道是幹什麼的,當你和別人交流的時候,你就不得不乙個乙個字母來念「x-l-q-y」、「l-t-q manager」,鬼知道你說的是什麼?ps. xlqy-xianlvqiyuan(仙履奇緣), ltq-liaotianqun(聊天群),有這樣的名字也是醉了。
bad:
classbad:xlqy
;class
fcnv
;class
ltqmanager
;
ifgood:(obj
->
base
->
id ==
4661
)// 4661是啥玩意?
inte
;// 怎麼查詢?
***x
:iterator it
;// 變數作用的範圍比較大的時候,也不見得是個好名字
#defineps.匈牙利命名對於我們這些在linux下摸爬滾打的好多年的來說,看著真心彆扭。ojbect_feedback_card
4661if(
ojbect_feedback_card
==obj
->
base
->id)
ps.說到這一點,可能有些同學有不同意見了,「我這樣寫是為了區分成員變數和臨時變數啊!」,好像這樣寫也沒什麼大不了,遵循**規範即可。如google的c++**規範,私有變數形如:***_,加字尾_,其目的除了讓你知道這貨是個私有變數,還有一點就是防止有些人圖省事把帶私有變數直接public掉,因為誰也不喜歡在**裡面看到大量這些帶把的玩意。
寫**的同學多數都是都出自cs,術語、演算法名、模式名、數學術語儘管用。如accountvisitor:visitor模式實現的account類。
我們**裡面多數都是這些名稱,不明白找策劃問問,基本上都是功能相關的名稱。
bad:
// 看著整齊?使用方便?類名/命名空間名:dword love_ensure_type_
;//當前的愛情保險型別
dword love_ensure_ret_
;//購買愛情保險回應標示
dword love_ensure_total_
;//現在已經蓋章數目
dword love_ensure_
..._
;//...
dword love_ensure_
..._
;//...
函式名:
變數名:
取名是一件嚴肅的事情,我們需要認真對待,名字代表著乙個個概念,名字代表著你想表達的意圖,好名字是可讀**的首要條件:
編碼之道 取個好名字很重要
就是程式設計師 的孩子,給 孩子 取個好聽的名字很重要!我們在專案開發中,接觸到的變數 函式 類多數都是專案自己定義的,往往都是為了解決一些特定的領域的問題,引入了各種各樣的概念,裡面的名字 就對應著問題領域或方案領域的這些概念,所以,對於乙個命名良好,規範,設計簡潔的系統,要想非常快的理解乙個系統...
起個好名字的重要性
最近很多人關注 net開發人員犯的6大安全錯誤 這篇小短文http blog.csdn.net testing is believing archive 2007 12 21 1958004.aspx csdn還把它放到主頁面的專家專欄中,不過鬱悶的是把我的名字寫成了 陳技能 想起來從小時候到現在,...
起個好名字的重要性
最近很多人關注 net開發人員犯的6大安全錯誤 這篇小短文 csdn還把它放到主頁面的專家專欄中,不過鬱悶的是把我的名字寫成了 陳技能 想起來從小時候到現在,叫錯我的名字的也不多,有些人把我叫成了 陳能枝 不過叫錯的還是以 陳技能 居多。大學的時候跟一位老師到南海做專案,老師是這樣介紹我的 能力很強...