命名的藝術(shù)

引言

我們?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);

如果你還覺得第二種命名簡單,不錯,你的小學語文一定是滿分,可是你寫的程序其他人不一定能看懂,或者會花很多時間去看懂。然后,國外的人一定都看不懂(黑人問號)。

為什么要談命名的藝術(shù)

  • 首先,每個文件,函數(shù)等都需要一個標簽,為了我們能更快找到它們,命名就顯得比較重要了。
  • 我們寫的代碼不光是給自己看的,你需要讓你的老師,隊友,甚至是上司都能看懂你的代碼。一個人只能耍耍小聰明,寫點小程序,而那些大型程序幾乎沒人能獨自完成。團隊合作時,命名就是看你是否坑隊友的標準之一。
  • 其實命名規(guī)則也是一種習慣,我們都遵循這個的規(guī)則,世界才能更加和平(x)。

通用的命名規(guī)則

  • 不要用拼音?。?!
  • 不要作死去用關(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:一般是類名變駝峰命名,也可以將類名適當縮寫(chatClient或client)
  • 屬性2:java源碼中經(jīng)常以m開頭來命名成員變量,雖然我不喜歡這么寫(mChatClient或mClient)
  • 盡量不要使用重復(fù)命名,這樣容易導(dǎo)致各種奇怪的問題。

其它命名規(guī)則(有點雜,就不列舉多了)

  • 下劃線命名法。(腳本語言使用較多)
  • 特殊前后綴標記(php的$,python的__)
#python
class Test:
    def __init__(self):
        self.name = None
def is_empty(content)://下劃線
    if content == "":
        return False
    else:
        return True

最后,再次強調(diào):不要用拼音?。。?/h2>

最后的最后,貼上朱大的地址,快去膜一波。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容