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

2021-09-23 07:25:10 字數 2740 閱讀 7513

**就是程式設計師

的孩子,給「孩子」取個好聽的名字很重要!

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

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

1. 原則:名副其實

bad:

int t = currenttime.elapse(e); // 消逝的時間,以毫秒計

...if (t > timeout_value)

good:

int elapsed_ms = currenttime.elapse(e);

...if (elapsed_ms > timeout_value)

2. 原則:避免誤導

bad:

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

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

bool sendtozoneservers(); // sendtoallzoneservers會好點

3. 原則:做有意義的區分

bad:

void copy(char a1, char a2)

good:

void copy(char source, char dest)

4. 原則:使用可讀的名字

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

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

bad:

class xlqy;

class fcnv;

class ltqmanager;

5. 原則:使用可搜尋的名字

bad:

if (obj->base->id == 4661) // 4661是啥玩意?

int e; // 怎麼查詢?

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

good:

#define ojbect_feedback_card 4661

if (ojbect_feedback_card == obj->base->id)

6. 原則:避免使用編碼

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

ps.說到這一點,可能有些同學有不同意見了,「我這樣寫是為了區分成員變數和臨時變數啊!」,好像這樣寫也沒什麼大不了,遵循**規範即可。如 google的c++**規範,私有變數形如:***_,加字尾_,其目的除了讓你知道這貨是個私有變數,還有一點就是防止有些人圖省事把帶私有變數直接 public掉,因為誰也不喜歡在**裡面看到大量這些帶把的玩意。

7. 原則:名字盡量來自解決方案領域或問題領域

寫**的同學多數都是都出自cs,術語、演算法名、模式名、數學術語儘管用。如accountvisitor:visitor模式實現的account類。

我們**裡面多數都是這些名稱,不明白找策劃問問,基本上都是功能相關的名稱。

8. 原則:適當使用有意義的語境

bad:

// 看著整齊?使用方便?

dword love_ensure_type_;  //當前的愛情保險型別

dword love_ensure_ret_; //購買愛情保險回應標示

dword love_ensure_total_; //現在已經蓋章數目

dword love_ensure_..._;  //...

dword love_ensure_..._;  //...

最後:我們的c++命名規範

類名/命名空間名:

函式名:

變數名:

取名是一件嚴肅的事情,我們需要認真對待,名字代表著乙個個概念,名字代表著你想表達的意圖,好名字是可讀**的首要條件:

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

就是程式設計師的孩子,給 孩子 取個好聽的名字很重要!我們在專案開發中,接觸到的變數 函式 類多數都是專案自己定義的,往往都是為了解決一些特定的領域的問題,引入了各種各樣的概念,裡面的名字就對應著問題領域或方案領域的這些概念,所以,對於乙個命名良好,規範,設計簡潔的系統,要想非常快的理解乙個系統,最...

起個好名字的重要性

最近很多人關注 net開發人員犯的6大安全錯誤 這篇小短文http blog.csdn.net testing is believing archive 2007 12 21 1958004.aspx csdn還把它放到主頁面的專家專欄中,不過鬱悶的是把我的名字寫成了 陳技能 想起來從小時候到現在,...

起個好名字的重要性

最近很多人關注 net開發人員犯的6大安全錯誤 這篇小短文 csdn還把它放到主頁面的專家專欄中,不過鬱悶的是把我的名字寫成了 陳技能 想起來從小時候到現在,叫錯我的名字的也不多,有些人把我叫成了 陳能枝 不過叫錯的還是以 陳技能 居多。大學的時候跟一位老師到南海做專案,老師是這樣介紹我的 能力很強...