編碼之道 取個好名字很重要 IT藍豹

2021-07-05 19:48:01 字數 2627 閱讀 3298

**就是程式設計師的孩子,給「孩子」取個好聽的名字很重要!

我們在專案開發中,接觸到的變數、函式、類多數都是專案自己定義的,往往都是為了解決一些特定的領域的問題,引入了各種各樣的概念,**裡面的名字就對應著問題領域或方案領域的這些概念,所以,對於乙個命名良好,**規範,設計簡潔的系統,要想非常快的理解乙個系統,最直接的方式就是rtfc(read the ****ing code)。對於乙個不斷演進的系統,**的可讀性至關重要,首要要解決的問題就是名字,變數名、函式名、類名等都需要仔細斟酌,認真對待,乙個能夠簡潔,能夠清晰表達概念和意圖的名字就顯得尤為重要。

閱讀《**整潔之道》這本書後發現其中說的內容在我們自己專案中比比皆是,隨便拿出一塊**都可以當做反面教材給大家講半天。長時間積累,導致**發霉變質,取名也是毫無章法,信手拈來。閱讀這樣的**,撞南牆的心都有了。下面結合自己專案中的問題和《**整潔之道》談談關於命名相關的原則。

bad:

intt =

currenttime

.elapse(e

);// 消逝的時間,以毫秒計

...if(t

>

timeout_value

)

good:

int

elapsed_ms

=currenttime

.elapse(e

);...if(

elapsed_ms

>

timeout_value

)

bad:

std

::vector

account_list

;// _list就是乙個誤導, accounts會更好

bool

sendtozoneserver

();// 和下面的函式差別很小

bool

sendtozoneservers

();// sendtoallzoneservers會好點

bad:

void

copy

(chara1,

chara2)

good:

void

copy

(char

source

,char

dest

)

猜一猜下面的類是幹什麼的?和別人怎麼說這幾個類?

根據這些簡直**的縮寫,如果沒有注釋基本上很難知道是幹什麼的,當你和別人交流的時候,你就不得不乙個乙個字母來念「x-l-q-y」、「l-t-q manager」,鬼知道你說的是什麼?ps. xlqy-xianlvqiyuan(仙履奇緣), ltq-liaotianqun(聊天群),有這樣的名字也是醉了。

bad:

class

xlqy

;class

fcnv

;class

ltqmanager

;

bad:

if

(obj

->

base

->

id ==

4661

)// 4661是啥玩意?

inte

;// 怎麼查詢?

***x

:iterator it

;// 變數作用的範圍比較大的時候,也不見得是個好名字

good:

#define

ojbect_feedback_card

4661if(

ojbect_feedback_card

==obj

->

base

->id)

ps.匈牙利命名對於我們這些在linux下摸爬滾打的好多年的來說,看著真心彆扭。

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還把它放到主頁面的專家專欄中,不過鬱悶的是把我的名字寫成了 陳技能 想起來從小時候到現在,叫錯我的名字的也不多,有些人把我叫成了 陳能枝 不過叫錯的還是以 陳技能 居多。大學的時候跟一位老師到南海做專案,老師是這樣介紹我的 能力很強...