java面向國際化項(xiàng)目開發(fā)需遵循的命名規(guī)范
前言
筆者最近幫助一些朋友應(yīng)聘遠(yuǎn)程工作(一般都是一些國外的項(xiàng)目),國外的項(xiàng)目負(fù)責(zé)人一般都會要求提供github賬號或者一些源代碼,很多朋友在這一關(guān)就被篩選掉了,其中不乏一些我認(rèn)為技術(shù)非常厲害的行業(yè)大牛,他們都研發(fā)過很多的大型項(xiàng)目,經(jīng)驗(yàn)與技術(shù)實(shí)力都非常不錯(cuò)。那究竟是為什么呢?我經(jīng)過仔細(xì)的研究,發(fā)現(xiàn)他們都有一個(gè)共同點(diǎn),就是命名規(guī)范不太嚴(yán)謹(jǐn)。我對這些在應(yīng)聘遠(yuǎn)程項(xiàng)目第一關(guān)就被篩選掉了的程序員做了一個(gè)問卷調(diào)查:你都知道哪些java命名規(guī)范?最終結(jié)果顯示:
- 類的首字母要大寫,使用駝峰標(biāo)識
- 變量首字母小寫,使用駝峰標(biāo)識
- 常量字母全部大寫,下劃線分隔
- 使用英文單詞,不要使用拼音
在很多的java程序員看來能做到這些,就已經(jīng)是很規(guī)范的命名方式了,究竟還有哪些不足之處?筆者總結(jié)了一下java開發(fā)中的最常用的一些命名規(guī)范,如果有不足之處,還請各位朋友不吝賜教!如果您覺得本文對您有幫助,期待您能幫忙關(guān)注、轉(zhuǎn)發(fā)!
一、package命名規(guī)范
軟件項(xiàng)目的包名稱應(yīng)該是由您的公司的域名的倒序,再加上您的項(xiàng)目的名稱,均使用小寫字母,不能包含其他符號??梢栽谧詈筇砑影陌姹荆缦聢D實(shí)例所示:
org.example.aprojectname org.example.aprojectname.innerpkg org.example.aprojectname.innerpkg.anotherpkg org.example.aprojectname.innerpkg2 org.example.anotherproject org.example.anotherproject.v2
二、Class命名規(guī)范
類名必須是一個(gè) 名詞,使用駝峰命名方式,首字母應(yīng)大寫,例如HashMap。應(yīng)該可以從類名中推斷出它大概會包含什么樣的函數(shù)和變量。例如:
class Student{} class ArrayList{} class HashMap{} class ComputerEngineer{}
三、Interface接口
接口名稱應(yīng)盡量使用 形容詞。有時(shí)也可以是名詞,如:List或Map。與類的命名規(guī)范一樣,使用駝峰命名,首字母應(yīng)大寫。如下:
interface Cloneable{} interface AutoCloseable{} interface PreparedStatement{} interface Engineer{}
接口通常代表一類對象的總稱。形容詞“會跑的”可以是一個(gè)接口名稱,實(shí)現(xiàn)類可以是人、狗、貓。
而使用名詞需要具有一定的概括性,“爪子”比“貓爪”更像是一個(gè)接口的名字。
四、變量
變量盡量是簡短而且有意義的名詞,遵循駝峰命名,首字母小寫。并且不要使用劃線('_
')或美元符號'$
'字符。
- 在for循環(huán)中使用的計(jì)數(shù)變量,可以是i,j,k,m和n,它們也常用于整數(shù)
- 對于 布爾值,通常開頭應(yīng)該是is或has。
- 可以使用Of串聯(lián)多個(gè)名詞
- 可以使用形容詞修飾名詞
int countOfCustomer; //Of串聯(lián) float averageInterest; //形容詞修飾名詞 long timeInMillisecond, daysInYear; //時(shí)間 boolean isEngineer, isCompleted, hasSubmitted; //布爾類型
五、常量
常量也是程序的重要組成部分。也要使用名詞,或者形容詞修飾的名詞。全部字母大寫,使用下劃線分隔單詞。
public static final float PI = 3.14; static int CREATED_ON_YEAR = 2019;
六、方法
方法名稱要使用動(dòng)詞,并且應(yīng)該從名稱中可以推斷出方法的功能,盡量簡短。使用駝峰標(biāo)志命名。通常, get
和 set
用于分別獲取數(shù)據(jù)和設(shè)置數(shù)據(jù)。對于布爾值,方法名稱應(yīng)與與變量名稱相同。
void print(Object obj); void remove(Obejct obj); Object update(); int getCountOfCustomer();//getter void setCountOfCustomer(int countOfCustomers);//setter boolean isUserAdmin(User user); //布爾類型
七、泛型
使用單個(gè)大寫字母, T使用的比較廣泛。E通常被用于集合元素,K和V通常被用于映射關(guān)系。請勿使用多字符。
public <T> void print(T t); interface List<E>{} class HashMap<K, V> {};
以上就是java開發(fā)國際化項(xiàng)目需遵循的命名規(guī)范的詳細(xì)內(nèi)容,更多關(guān)于java國際化命名規(guī)范的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
關(guān)于scanner.nextInt()等next()和scanner.nextIine()連用注意事項(xiàng)
這篇文章主要介紹了關(guān)于scanner.nextInt()等next()和scanner.nextIine()連用注意事項(xiàng),具有很好的參考價(jià)值,希望對大家有所幫助。2023-04-04SpringBoot?Http遠(yuǎn)程調(diào)用的方法
這篇文章主要為大家詳細(xì)介紹了SpringBoot?Http遠(yuǎn)程調(diào)用的方法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-08-08feign遠(yuǎn)程調(diào)用無法傳遞對象屬性405的問題
這篇文章主要介紹了feign遠(yuǎn)程調(diào)用無法傳遞對象屬性405的問題,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-03-03數(shù)據(jù)庫連接超時(shí)java處理的兩種方式
這篇文章主要介紹了數(shù)據(jù)庫連接超時(shí)java處理的兩種方式,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-04-04圖解Java中插入排序算法的原理與實(shí)現(xiàn)
插入排序的算法描述是一種簡單直觀的排序算法。它的工作原理是通過構(gòu)建有序序列,對于未排序數(shù)據(jù),在已排序序列中從后向前掃描,找到相應(yīng)位置并插入。本文將通過圖片詳解插入排序的原理及實(shí)現(xiàn),需要的可以參考一下2022-08-08Java合并兩個(gè)List后并去掉重復(fù)項(xiàng)的兩種做法
工作中很多時(shí)候需要用到合并兩個(gè)List并去除其中的重復(fù)內(nèi)容,這是一個(gè)很簡單的操作,實(shí)現(xiàn)的方法也多種多樣,這篇文章主要給大家介紹了關(guān)于Java合并兩個(gè)List后并去掉重復(fù)項(xiàng)的兩種做法,需要的朋友可以參考下2023-10-10SpringBoot2整合Drools規(guī)則引擎及案例詳解
這篇文章主要介紹了SpringBoot2整合Drools規(guī)則引擎及案例詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-10-10解決Springboot項(xiàng)目啟動(dòng)后自動(dòng)創(chuàng)建多表關(guān)聯(lián)的數(shù)據(jù)庫與表的方案
這篇文章主要介紹了解決Springboot項(xiàng)目啟動(dòng)后自動(dòng)創(chuàng)建多表關(guān)聯(lián)的數(shù)據(jù)庫與表的方案,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-03-03