那些讓程序員崩潰又想笑的程序命名...
那些讓程序員崩潰又想笑的程序命名...
本文旨在用最通俗的語言講述最枯燥的基本知識
1
到一家創(chuàng)業(yè)公司上班的第一天,老員工劉XX給我看了公司他負(fù)責(zé)的項目,奇怪的是,命名是“LiuQXProject”,劉XX看著驚愕的我說:“怎么了?有什么錯嗎?”
2
給同事做雙十一活動相關(guān)代碼的review,學(xué)到到了很多中英混血單詞 ,獲取雙十一拼團(tuán)活動數(shù)據(jù)的接口叫做“get_ShuangShiYi_GroupTuan_activity_data”,特等獎的命名:TeDeng_price....更氣人的是,我們活動獎等有十級,他就虔誠地繼續(xù)OneDeng_price、TwoDeng_price 直到JiuDeng_price。。。噢,no??!好氣?。?!而且他還把”獎“的單詞prize寫成了price,怎么說呢?好難受..
3
公司來了個剛畢業(yè)的小伙子,自詡前端未來之星,喜歡研讀源碼,對開源充滿熱愛,一個月后,無意間打開他寫的一個js文件,讓我驚訝的是:變量從a到z全部用完,更氣人的是,26個字母用完之后,他竟然喪心病狂的用起來了雙拼,var aa=1,var ab=“12”,var ac=null...我問他為什么這樣命名,他說你沒研讀jQuery源碼嗎?人家就是這樣做的,簡潔大氣上檔次!
4
因為微信昵稱經(jīng)常有帶有一些亂七八糟的表情或者字符,在正常情況下utf-8編碼的數(shù)據(jù)庫是存不進(jìn)去的,因此讓同事幫忙寫個把微信昵稱轉(zhuǎn)換成正常的字符串的一個工具函數(shù),最終我拿到了這個工具函數(shù),名字叫做:convertingWechatNicknameintoNormalCharacters(String nickName)
5
實(shí)習(xí)小伙子來的頭一天就搞的滿身大汗,我說怎么了,他說我明明寫了main方法,為什么運(yùn)行不了,我一看代碼,我噻~main寫成了mian,怎么可能跑得起來啊!更殘暴的是:蘋果手機(jī)是apple_sj,Android手機(jī)是android_sj,哈哈~
以上的種種讓人哭笑不得的命名問題..相信很多小伙伴也會碰過這樣,有些是因為經(jīng)驗不足,有些是因為一直沒有對自己寫的代碼做一些規(guī)范化的工作,有的是因為被老項目、前輩帶出來的壞習(xí)慣...這些都是編程世界里非常不好的行為,拒不完全統(tǒng)計:在一個項目中,程序員80%的時間都是在和變量、函數(shù)、方法打交道,因此一個好的命名習(xí)慣,比注釋或一份詳細(xì)的開發(fā)文檔都重要。針對于此,小編特意根據(jù)行業(yè)標(biāo)準(zhǔn)---阿里開發(fā)文檔,做了一些參考和摘抄,整理出一份關(guān)于命名方面的規(guī)范,給需要的你作參考。
爭取多寫漂亮代碼,少寫注釋!?。?/p>
文章提綱: 1. 整體規(guī)范 2. 包規(guī)范 3. 類規(guī)范 4. 方法規(guī)范 5. OOP的一些強(qiáng)制規(guī)范
1. 整體規(guī)范
所有的命名必須以英文意譯,不能以中文拼音意譯,如:獲取我的消息接口,可以寫:myMessage;但不能寫:myXiaoXi
盡量用精簡的英文命名,但要完整表達(dá)其意義,杜絕int a ,int a1 int aa這種毫無意義的簡化寫法。
所有命名不能以特殊符號開始,如:_age,_username
常量用全大寫定義,單詞之間用下劃線分割語義,如:public final int REDIS_MAX_IDLE=5;
2. 包規(guī)范
包名全小寫,不能用特殊符號或者駝峰寫法如:com.courseLog.uitl_con是不合規(guī)范的。
包名要符合包的作用,比如數(shù)據(jù)層要寫dao,工具包要寫util等
3. 類規(guī)范
類名風(fēng)格為大寫開頭的駝峰命名方式,如:ApiController、TestController等
異常類命名使用Exception結(jié)尾,如:CustomerException
抽象類命名使用Abstract開頭,如:AbstractCustomer
測試類命名以它要測試的類的名稱開始,以 Test 結(jié)尾,如:CustomerControllerTest
枚舉類命名要以Enum結(jié)尾,如果CustomerRoleEnum
其它類型的類命名,在描述類作用的同時,也盡可能表達(dá)出類所用的一些設(shè)計模式
4. 方法規(guī)范
方法名使用駝峰寫法,以小寫字母開頭,如:getUserCourse();
方法內(nèi)的參數(shù)名、成員變量、局部變量均使用駝峰寫法,以小寫字母開頭,如:int userName;
接口類的方法和屬性不要加上任何修飾符,保證代碼的簡介。
方法定義必須要有注釋,包括(方法作用、參數(shù)名、返回類型、創(chuàng)建時間等)
Service/DAO層方法命名規(guī)約:
1) 獲取單個對象的方法用get做前綴。 2) 獲取多個對象的方法用list做前綴。 3) 獲取統(tǒng)計值的方法用count做前綴。 4) 插入的方法用save/insert做前綴。 5) 刪除的方法用remove/delete做前綴。 6) 修改的方法用update做前綴。
5. OOP的一些強(qiáng)制規(guī)范
盡量避免使用可變參數(shù)編程,相同參數(shù)類型,相同業(yè)務(wù)含義,才可以使用 Java 的可變參數(shù),避免使用 Object
接口過時必須加@Deprecated 注解
不能使用過時的類或方法
所有的相同類型的包裝類對象之間值的比較,全部使用 equals 方法比較
類內(nèi)方法定義順序依次是:公有方法或保護(hù)方法 > 私有方法 > getter/setter 方法。
覺得本文對你有幫助?請分享給更多人?關(guān)注「編程無界」,提升裝逼技能
本文轉(zhuǎn)載自異步社區(qū)。
軟件開發(fā)
版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時內(nèi)刪除侵權(quán)內(nèi)容。