時隔我做程式設計師兩年了,現在才意識到為檔案,為變數,為函式起個好名字的重要,我倍感慚愧,但又為現在意識到這點感到幸運。
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的時候,我們都要嘗試用邏輯去解析這段 這造成時間的大量浪費,因為這個...
如何給程式中的變數起個好名字?
對乙個人來說,名字很重要,俗語說 人如其名 對程式中的變數而言,名字同樣非常重要。作為開發人員,你要花費大量的敲 時間來建立變數和考慮給變數起個名字。名字無處不在。你可以命名檔案 類 方法和變數。而命名的不同導致有的是好 有的是糟糕的 最終這會嚴重影響 維護的成本。由於我們花費大量時間命名變數,因此...
乙個成功的程式設計師的故事
好的開始是成功的一半,本書首先會試圖告訴你什麼是程式設計師?為什麼要做這樣的程式?正確的入門方法是什麼?程式設計師只有在理解了以上內容的基礎上,才能進一步更快地提高自身技能,這時候再開始程式的設計。其實,對乙個軟體的開發者來說,真正重要的不在於這行 怎麼寫,那些 應該怎麼寫,關鍵是思路的問題,而思路...