在寫這篇文章時,我也是醞釀了許久;在平時編碼時,也經常苦于如何命名讓變量,函數及類變都優雅,美觀。因為,有時候看回過頭來看代碼發現,一個變量或是函數名特别是有單詞組合都時候,會覺得有些單詞組合在一起,看起來很别扭。舉個例子,如類型統計:typestats,statstype,categorystats,statscategory。其中2看的最别扭,3其次,1和4都還可以接受。當然這個也不是說2,3不行,這裡我隻是想說明命名之前,我盡可能的多組合自己的變量,使最後的命名更加優雅。
這裡總結一下自己在平時多使用心得,故總結以下心得:
類型
長度
循環變量
1
方法
1-2
類
2-3
全局變量
3-4
“value”,“equals”,“data”在任何情況下都不是一種有效對命名方式。
變量的名字必須能夠準确反應它的含義和内容。
如: n_,obj_,_p
如:txtusername,lblusername,cmbisadmin等,否則會對可讀性造成影響,而且會令查找/替換工具(find/replace tools)不可用。
在命名使,要和目前的命名規則比對,不要另起規則。常見的問題:username,username,username,user_name等。
以java的規則為例:
類名使用駝峰命名法:appdedail
包名使用小寫:cn.company.utils(cn.company.業務名)
變量使用首字母小寫的駝峰命名法:appinfo
常量使用全大寫:max_size
枚舉類采用駝峰命名法,枚舉值采用全大寫:configure,app,app_name
除了常量和枚舉值以外,不要使用下劃線:“_”
如:在方法,初始化方法和類中,這樣做可以提高可讀性和可維護性。
同2.7一樣,賦予它們不同的名字,這樣對保持可讀性和可維護性很重要。
這樣做的後果會導緻在跨平台使用時産生問題。
變量名不要超過50字元,過長的變量名會導緻代碼醜陋和難以閱讀,還可能因為字元限制在某些編譯器上存在相容性問題。
例如:在同時使用英語和日文來命名會導緻了解不一緻和降低代碼的可讀性。
方法名必須準确表達該方法的行為,在多數情況下以動詞開頭,如:createpassword。
在項目注堅持使用同一種方法命名方式,如:gettxtusername(),isadmin(),updateuserinfo(),否則會對可讀性造成影響,而且會令查找/替換工具不可用。
在命名時,不要不統一的使用大小寫字母,如:
以java為例:
方法使用首字母大小寫的駝峰命名法:getstudentinfo
方法參數使用首字母大小寫的駝峰命名法:insertstudentinfo(student stu)
這樣做可以在沒有文檔的情況下盡量做到“見明知意”。
細節很重要,平時編碼時需要注意的一些細節,時刻記住,我們編碼是為了讓别人更好的去閱讀你的代碼,而不是“迷惑”别人。一次在閱讀代碼時發現以前一哥們寫的注釋,我瞬間内心暖暖的。大概内容如下:
最後說一句,同是程式員,程式員何苦為難程式員!!!