天天看點

讀書筆記(二)代碼整潔之道(命名)有意義的命名

有意義的命名

一個好的有意義的命名可以提高閱讀代碼效率包括:

變量

函數

參數

類名

方法名

等,如何去給它們一個好的命名,一般遵守下面幾個命名規則,慢慢地你就會養成一個會命名的好程式員。

1.選擇展現本意的詞語

int d;
public List<int[]> getThem() {
	List<int[]> list1 = new ArrayList<int[]>();
	for(int[] x: theList) 
	    if(x[0] == 4) 
		 list1.add(x);
	return list1;
}
           

由上述代碼可以看出4個問題:

  1. theList是什麼類型的東西?
  2. theList中零下标的元素的意義是啥?
  3. 數字4代表什麼意思?
  4. 如何使用傳回的清單?

2.避免使用專有名字以及易誤導的詞

例1:
int a = 1 ;
int b = java;
int c = Time;
if(l == O) {	
    a = O1;
}else {
    l = 01;
}
           
  1. O和0相似,1和l相似
  2. java屬于專有名詞
  3. Time屬于Java.util包中的類

3.做有意義的區分

對變量做有意義的區分不能按照順序進行固化程式設計:

a1,a2,a3,a4等類似這種如下執行個體:

public static void copyChars(char a1[],char a2[]) {	
      for(int i=0;i<a1.length;i++) {
		a2[i] = a1[i];
	}
}
           

無法區分a1,a2分别代表什麼如果是source,destination就可以明顯區分了。

4.使用讀得出來的名稱

人類長于記憶和使用單詞,不要傻乎乎的制造單詞,

class DtaRcrd102 {
     private Date genymdhms;
     private Date modymdhms;
     private final String pszqint = "102";
     /*  .......*/
}
class Customer { 
     private Date generationTimestamp;
     private Date modificationTimestamp;
     private final String recordId = "102";
     /*...........*/
 }
           

5.使用可搜尋的名稱

若變量和常量可能在代碼中被多次使用,應該賦以便于搜尋的名稱,名稱的長短應和作用域相對應。

6.避免不必要的成員字首

不需要用

_m

來标明成員變量

public calss Part {
     private String m_des;//The textual description
     void setName(String name) {
           m_dec = name;
      }
 }
 ---------------------------------------------------------------
 public class Part {
     String description;
     void setDescription {
             this.description = description;
     }
 }
           

7.接口與實作

一般來書接口定義AbstractFactory那麼接口的實作為了友善可以定義為AbstractFactoryImp。

8.類名

類名和對象名應該是名詞或名詞短語,類名不應該是動詞,不以數字開頭。

9.方法名

方法名應該為動詞或是動詞短語。屬性通路詞,修改器,和斷言應該根據其值命名,加上get,set,is等等。

10.避免同一個單詞用于不同的目的

例如:三層架構中:

Dao,Service,Servlert

public class Dao {
     void add(int args) {
     /*....*/
     }
}
//---------------------------------
public class Servlert {
	 Dao dao = new Dao();
      void update/apped(int args) {
           dao.add(args);
       }
}
           

11.不要添加沒用的語境

對于Adress類的實體來說,accountAdress和customerAdress都是不錯的名稱不過用在類名就不太好了,是以添加有意義的語境相當重要。

讀書筆記(二)代碼整潔之道(命名)有意義的命名

繼續閱讀