引言
我們?yōu)槭裁葱枰?guī)范命名?首先涛舍,容我舉個栗子:
有這樣一個求最大值的函數(shù):
//C
int max(int a, int b);
int zuidazhi(int a, int b);
讀第一行代碼的過程:單詞max->最大值
讀第二行代碼的過程:拼音zuidazhi->從拼音匹配對應(yīng)漢字->最大值
可能你現(xiàn)在還覺得第二種命名也不是那么難理解澄惊。那么再看看下面的:
//C
int checkUsername(char *username);
int jianchayonghuming(char *yonghuming);
如果你還覺得第二種命名簡單,不錯富雅,你的小學(xué)語文一定是滿分掸驱,可是你寫的程序其他人不一定能看懂,或者會花很多時間去看懂没佑。然后毕贼,國外的人一定都看不懂(黑人問號)。
為什么要談命名的藝術(shù)
- 首先蛤奢,每個文件鬼癣,函數(shù)等都需要一個標(biāo)簽,為了我們能更快找到它們啤贩,命名就顯得比較重要了待秃。
- 我們寫的代碼不光是給自己看的,你需要讓你的老師瓜晤,隊友锥余,甚至是上司都能看懂你的代碼。一個人只能耍耍小聰明痢掠,寫點小程序,而那些大型程序幾乎沒人能獨自完成嘲恍。團(tuán)隊合作時足画,命名就是看你是否坑隊友的標(biāo)準(zhǔn)之一。
- 其實命名規(guī)則也是一種習(xí)慣佃牛,我們都遵循這個的規(guī)則淹辞,世界才能更加和平(x)。
通用的命名規(guī)則
- 不要用拼音7馈O笞骸蔬将!
- 不要作死去用關(guān)鍵字/保留字。
- 常量大寫+下劃線命名法央星。
例子:
//Java
public class class {//這行直接炸
public static final int EXIT_SUCCESS = 0;//下面應(yīng)該會有一個exit(EXIT_SUCCESS);吧霞怀,手動滑稽
private int zonghe;//可以,這很拼音
}
Java命名規(guī)則
- 據(jù)說Java支持中文變量莉给,但是中文不要來毙石。(據(jù)說有個叫e4a的就是這么干的)
- 類名/文件名用帕斯卡命名法。<b>注:文件名必須和最外層public類類名相同</b>
- 方法名/成員變量名/形參等用駝峰命名法颓遏。
例子:
文件名為TestClass.java
//Java
public class TestClass {//類名必須和文件名相同徐矩,帕斯卡命名法
private int sum;
public int getSum(){//駝峰
return this.sum;
}
}
更高級的姿勢
命名要有意義
- for循環(huán)里的i,j,k什么的就不要說了
- 類名:要能代表這個類的功能和類型(ChatClient)
- 方法名:同樣要能表示方法的功能,還要簡單易懂(getServerIP)
- 屬性1:一般是類名變駝峰命名叁幢,也可以將類名適當(dāng)縮寫(chatClient或client)
- 屬性2:java源碼中經(jīng)常以m開頭來命名成員變量滤灯,雖然我不喜歡這么寫(mChatClient或mClient)
- 盡量不要使用重復(fù)命名,這樣容易導(dǎo)致各種奇怪的問題曼玩。
其它命名規(guī)則(有點雜鳞骤,就不列舉多了)
- 下劃線命名法。(腳本語言使用較多)
- 特殊前后綴標(biāo)記(php的$演训,python的__)
#python
class Test:
def __init__(self):
self.name = None
def is_empty(content)://下劃線
if content == "":
return False
else:
return True
最后弟孟,再次強(qiáng)調(diào):不要用拼音!Q颉拂募!
最后的最后,貼上朱大的地址窟她,快去膜一波陈症。