寫給所有程式設計師 起個好名字是成功的一半

2021-08-09 06:10:46 字數 2560 閱讀 8472

時隔我做程式設計師兩年了,現在才意識到為檔案,為變數,為函式起個好名字的重要,我倍感慚愧,但又為現在意識到這點感到幸運。

1.沒意義的名字

例子:

int a = 1;

int b = 2;

int c = a + b;

system.out.println("c="+c);

這段**很簡單,輸出兩個數的和,但有個問題,你能看到c就知道是兩數和嗎?如果我們的**足夠多,當每次看到a,b,c的時候,我們都要嘗試用邏輯去解析這段**,這造成時間的大量浪費,因為這個名字除了區別不同變數外,沒有帶給我們任何有用的訊息。

2.讓人誤解的名字

int banana = 2;

system.out.println("orange ="+orange);

讓人誤解的名字往往讓人先想含義,發現不正確又要從頭看起。

3.數字命名

int a1 = 1;

int a2 = 2;

int a3 = 3;

int a4 = a1 + a2 ;

system.out.println("a4 ="+a4 );

數字命名導致我不得不去檢視與之相關的名字。既然都以a開頭,又用編號區分,我打賭他們之間一定存在某些關係。不行,一定不能寫錯,我要看看它的幾個兄弟是什麼意思。。。每次看到這種**的時候我難免這樣想,不得不去看看它的「兄弟」是幹嘛的,甚至有的時候會應為粗心,而寫錯。比如上面的a4 = a1+a2;

我寫成a1+a3,這真的很難一眼看出來。

數字命名導致閱讀者要檢視兄弟名稱,容易書寫錯誤且不容易檢查。

4.大家來找茬

int naturalfirstnum = 1;

int naturalsecondnum = 2;

int naturalsumnum = naturalfirstnum + naturalsecondnum;

system.out.println("naturalsumnum ="+naturalsumnum );

如果有相似的名字,請把它們不同的部分寫在開頭,其次是結尾,不要把這部分放在中間,這會增大錯誤率,容易書寫錯誤且不容易檢查。

看到上面三個數的不同之處了嗎?它們開頭結尾都相同,但是中間不同,這樣真的很容易弄錯,如果你不得不這樣寫,請將naturalfirstnum 改為firstnaturalnum,naturalsecondnum改為secondnaturalnum 同理修改naturalsumnum;如果命名規則要求固定開頭(類似btnservicecommit,前面幾個字母表示控制項),那就讓它們的結尾不同naturalnumfirst.

5.不要加和型別相同的名字,這會給你的查詢替換工作加大難度

list

<

integer

>

list

=new arraylist<>();

這個名字有兩個槽點:1.你搜尋list的時候會把list也搜尋出來,如果我全域性替換名稱,會造成大面積的錯誤,因為我把list也替換了。2.沒意義,因為一旦我賦值錯誤了,強型別語言ide會提醒,看到這個名字我也不知道它的作用是什麼。

這種情況通常發生在自定義的類,比如:

聰明的程式設計師往往會這樣寫:

int firstnum = 1;

int secondnum = 2;

int sumnum = firstnum + secondnum;

system.out.println("sumnum ="+sumnum );

注意到了嗎?我用firstnum來代替num1,這樣識別度會增強,firstnum和secondnum不像num1和num2這樣容易弄錯。因為是變數名所以採用名詞,不要寫成動詞firstadd,這容易讓人眩暈,1+?這是什麼?用動詞不能完整的表達變數名的意思。

同樣的,函式名(方法名)要使用動詞+名詞

public

static

void

main(string args)

public

static

intaddtwonums(int firstnum,int secondnum)

上面的名稱:addtwonums就是動詞+名詞格式,不用看**單獨看名字,就知道這個函式(方法)是求兩數和的,這就是這種命名方式的好處。單用動詞add,絕對不會馬上知道這個具體的工作。是新增到資料庫?新增到列表?還是求和?要有個識別的過程,這個過程,我稱之為浪費時間的過程。

雖然也算變數名,通常表示乙個動作,如:

提交資料,比如修改手機號,比如登入

所以使用動詞或動名詞形式:

btncommit,btnmodifyphonenumber

程式中起個好名字是成功的一半

1.沒意義的名字 例子 int a 1 int b 2 int c a b system.out.println c c 這段 很簡單,輸出兩個數的和,但有個問題,你能看到c就知道是兩數和嗎?如果我們的 足夠多,當每次看到a,b,c的時候,我們都要嘗試用邏輯去解析這段 這造成時間的大量浪費,因為這個...

如何給程式中的變數起個好名字?

對乙個人來說,名字很重要,俗語說 人如其名 對程式中的變數而言,名字同樣非常重要。作為開發人員,你要花費大量的敲 時間來建立變數和考慮給變數起個名字。名字無處不在。你可以命名檔案 類 方法和變數。而命名的不同導致有的是好 有的是糟糕的 最終這會嚴重影響 維護的成本。由於我們花費大量時間命名變數,因此...

乙個成功的程式設計師的故事

好的開始是成功的一半,本書首先會試圖告訴你什麼是程式設計師?為什麼要做這樣的程式?正確的入門方法是什麼?程式設計師只有在理解了以上內容的基礎上,才能進一步更快地提高自身技能,這時候再開始程式的設計。其實,對乙個軟體的開發者來說,真正重要的不在於這行 怎麼寫,那些 應該怎麼寫,關鍵是思路的問題,而思路...