国产亚洲欧美一区二区,亚洲欧洲国产一区,成人在线视频网,中文精品视频一区二区在线观看

返回頂部
關(guān)閉軟件導(dǎo)航
位置:首頁 > 資訊 > 電商資訊>為什么阿里工程師代碼寫的好看看他的代碼規(guī)范就知道了
為什么阿里工程師代碼寫的好看看他的代碼規(guī)范就知道了

本文主要講解阿里JAVA開發(fā)手冊中比較重要的設(shè)計規(guī)范,這些重要的設(shè)計規(guī)范有助于我們改進(jìn)自己的代碼,提升系統(tǒng)的系統(tǒng)的性能。

曾經(jīng)與一位從阿里出來的Java工程師一起工作過一段時間,他的技術(shù)說不上非常厲害,但是,他的代碼寫的的非常好,凡是他做的功能很少出現(xiàn)Bug。我就很好奇,于是經(jīng)常向他請教一些代碼設(shè)計的原則,然后他告訴了我阿里Java手冊。并且,他將這個手冊進(jìn)行了修改,也成為了我司Java程序員的開發(fā)手冊。這篇文章就讓我們看一看這個手冊中比較重要的原則。

代碼中的命名均不能以下劃線或美元符號開始,也不能以下劃線或美元符號結(jié)束。

反例:_name/__name/$name/name_/name$/name__

類型與中括號緊挨相連來表示數(shù)組。

正例:定義整形數(shù)組int[]arrayDemo;反例:在main參數(shù)中,使用Stringargs[]來定義。

POJO類中布爾類型變量都不要加is前綴,否則部分框架解析會引起序列化錯誤。

說明:表達(dá)是與否的值采用is_xxx的命名方式,所以,需要在設(shè)置從is_xxx到xxx的映射關(guān)系。

反例:定義為基本數(shù)據(jù)類型BooleanisDeleted的屬性,它的方法也是isDeleted(),RPC框架在反向解析的時候,“誤以為”對應(yīng)的屬性名稱是deleted,導(dǎo)致屬性獲取不到,進(jìn)而拋出異常。

在常量與變量的命名時,表示類型的名詞放在詞尾,以提升辨識度。

正例:startTime/workQueue/nameList/TERMINATED_THREAD_COUNT

反例:startedAt/QueueOfWork/listName/COUNT_TERMINATED_THREAD

接口類中的方法和屬性不要加任何修飾符號(public也不要加),保持代碼的簡潔性,并加上有效的Javadoc注釋。盡量不要在接口里定義變量,假如一定要定義變量,肯定是與接口方法相關(guān),并且是整個應(yīng)用的基礎(chǔ)常量。

正例:接口方法簽名voidcommit();

接口基礎(chǔ)常量StringCOMPANY="alibaba";

反例:接口方法定義publicabstractvoidf();

說明:JDK8中接口答應(yīng)有默認(rèn)實現(xiàn),那么這個default方法,是對所有實現(xiàn)類都有價值的默認(rèn)實現(xiàn)。

枚舉類名帶上Enum后綴,枚舉成員名稱需要全大寫,單詞間用下劃線隔開。

說明:枚舉其實就是尤其的類,域成員均為常量,且構(gòu)造方法被默認(rèn)強制是私有。

正例:枚舉名字為ProcessStatusEnum的成員名稱:SUCCESS/UNKNOWN_REASON。

為什么阿里工程師代碼寫的好看看他的代碼規(guī)范就知道了1

各層命名規(guī)約:

A)Service/DAO層方法命名規(guī)約

1)獲取單個對象的方法用get做前綴。

2)獲取多個對象的方法用list做前綴,復(fù)數(shù)形式結(jié)尾如:listObjects。3)獲取統(tǒng)計值的方法用count做前綴。

4)插入的方法用save/insert做前綴。

5)刪除的方法用remove/delete做前綴。

6)修改的方法用update做前綴。

B)領(lǐng)域模型命名規(guī)約

1)數(shù)據(jù)對象:xxxDO,xxx即為數(shù)據(jù)表名。

2)數(shù)據(jù)傳輸對象:xxxDTO,xxx為業(yè)務(wù)領(lǐng)域相關(guān)的名稱。

3)展示對象:xxxVO,xxx一般為網(wǎng)頁名稱。

4)POJO是DO/DTO/BO/VO的統(tǒng)稱,禁止命名成xxxPOJO。

不答應(yīng)任何魔法值(即未經(jīng)預(yù)先定義的常量)直接出現(xiàn)在代碼中。

為什么阿里工程師代碼寫的好看看他的代碼規(guī)范就知道了2

反例:Stringkey="Id#taobao_"+tradeId;

cache.put(key,value);

cache.put(key,value);

避免通過一個類的對象引用訪問此類的靜態(tài)變量或靜態(tài)方法,無謂增加編譯器解析成本,直接用類名來訪問即可。

相同參數(shù)類型,相同業(yè)務(wù)含義,才可以使用Java的可變參數(shù),避免使用Object。

說明:可變參數(shù)必須放置在參數(shù)列表的很后。(提倡同學(xué)們盡量不用可變參數(shù)編程)

正例:publicListlistUsers(Stringtype,Long...ids){...}

所有整型包裝類對象之間值的比較,全部使用equals方法比較。

說明:對于Integervar=?在-128至127范圍內(nèi)的賦值,Integer對象是在IntegerCache.cache產(chǎn)生,會復(fù)用已有對象,這個區(qū)間內(nèi)的Integer值可以直接使用==進(jìn)行判定,但是這個區(qū)間之外的所有數(shù)據(jù),都會在堆上產(chǎn)生,并不會復(fù)用已有對象,這是一個大坑,推薦使用equals方法進(jìn)行判定。

關(guān)于基本數(shù)據(jù)類型與包裝數(shù)據(jù)類型的使用標(biāo)準(zhǔn)如下:

1)【強制】所有的POJO類屬性必須使用包裝數(shù)據(jù)類型。

2)【強制】RPC方法的返回值和參數(shù)必須使用包裝數(shù)據(jù)類型。3)【推薦】所有的局部變量使用基本數(shù)據(jù)類型。

說明:POJO類屬性沒有初值是提醒使用者在需要使用時,必須自己顯式地進(jìn)行賦值,任何NPE問題,或者入庫檢查,都由使用者來保證。

正例:數(shù)據(jù)庫的查詢結(jié)果可能是null,因為自動拆箱,用基本數(shù)據(jù)類型接收有NPE風(fēng)險。

反例:比如顯示成交總額漲跌情況,即正負(fù)x%,x為基本數(shù)據(jù)類型,調(diào)用的RPC服務(wù),調(diào)用不成功時,返回的是默認(rèn)值,頁面顯示為0%,這是不合理的,應(yīng)該顯示成中劃線。所以包裝數(shù)據(jù)類型的null值,能夠表示額外的信息,如:遠(yuǎn)程調(diào)用失敗,異常退出。

POJO類必須寫toString方法。

使用IDE中的工具:source>generatetoString時,假如繼續(xù)了另一個POJO類,注重在前面加一下super.toString。

說明:在方法執(zhí)行拋出異常時,可以直接調(diào)用POJO的toString()方法打印其屬性值,便于排查問題。

關(guān)于hashCode和equals的處理,遵循如下規(guī)則:

1)只要覆寫equals,就必須覆寫hashCode。

2)因為Set存儲的是不重復(fù)的對象,依據(jù)hashCode和equals進(jìn)行判定,所以Set存儲的對象必須覆寫這兩個方法。

3)假如自定義對象作為Map的鍵,那么必須覆寫hashCode和equals。

說明:String已覆寫hashCode和equals方法,所以我們可以愉快地使用String對象作為key來使用。

線程資源必須通過線程池提供,不答應(yīng)在應(yīng)用中自行顯式創(chuàng)建線程。

說明:線程池的好處是減少在創(chuàng)建和銷毀線程上所消耗的時間以及系統(tǒng)資源的開銷,解決資源不足的問題。假如不使用線程池,有可能造成系統(tǒng)創(chuàng)建大量同類線程而導(dǎo)致消耗完內(nèi)存或者“過度切換”的問題。

線程池不答應(yīng)使用Executors去創(chuàng)建,而是通過ThreadPoolExecutor的方式,這樣的處理方式讓寫的同學(xué)更加明確線程池的運行規(guī)則,規(guī)避資源耗盡的風(fēng)險。

以上規(guī)范在設(shè)計代碼中,是比較重要的原則。假如編寫代碼的過程中,可以依照以上原則,那代碼的可讀性和可維護(hù)性將大大提升

如果您覺得 為什么阿里工程師代碼寫的好看看他的代碼規(guī)范就知道了 這篇文章對您有用,請分享給您的好友,謝謝
文章地址:http://www.brucezhang.com/article/online/6557.html
解放雙手無盡可能,有問題添加天線貓微信
国产亚洲欧美一区二区,亚洲欧洲国产一区,成人在线视频网,中文精品视频一区二区在线观看
久久久噜噜噜久久狠狠50岁| 国产亚洲精品一区二区| 国产欧美高清| 欧美国产日韩一区二区在线观看| 亚洲高清不卡一区| 欧美精品一区二区在线观看 | 欧美精品尤物在线| 一区二区三区 在线观看视频| 伊人婷婷欧美激情| 欧美国产视频在线观看| 日韩视频精品在线| **欧美日韩vr在线| 欧美日韩三级电影在线| 久热综合在线亚洲精品| 91久久精品美女高潮| 国产精品啊v在线| 欧美精品免费播放| 亚洲欧美日本另类| 伊人一区二区三区久久精品| 国产日韩欧美在线播放不卡| 久久中文字幕一区二区三区| 亚洲精品一二区| 伊人狠狠色j香婷婷综合| 欧美极品色图| 欧美wwwwww| 亚洲欧美日本另类| 亚洲国产精品一区制服丝袜| 狠狠色狠狠色综合人人| 欧美揉bbbbb揉bbbbb| 欧美激情一区二区三区在线 | 黄色成人av网| 国产欧美日韩综合一区在线播放 | 狠狠色丁香婷婷综合影院| 欧美激情一区二区三区在线视频观看| 蜜桃av一区二区三区| 亚洲视频一区| 在线精品国产欧美| 狠狠色狠狠色综合日日91app| 欧美日韩国产小视频在线观看| 欧美精品少妇一区二区三区| 欧美在线地址| 日韩视频永久免费观看| 亚洲乱码国产乱码精品精| 国产在线麻豆精品观看| 国产香蕉97碰碰久久人人| 欧美日本中文字幕| 欧美日韩一区三区四区| 久久综合色8888| 久久亚洲色图| 亚洲美女免费视频| 伊人男人综合视频网| 亚洲国产高潮在线观看| 国产精品中文在线| 国内成人精品一区| 国产精品免费aⅴ片在线观看| 国产精品女人久久久久久| 欧美激情bt| 欧美日韩你懂的| 久久阴道视频| 欧美激情一区二区在线| 久久露脸国产精品| 蜜臀99久久精品久久久久久软件| 欧美亚洲在线| 亚洲美女在线一区| 亚洲一区二区高清视频| 亚洲精品在线观看视频| 亚洲线精品一区二区三区八戒| 亚洲国产一区二区三区高清| 亚洲裸体视频| 91久久精品www人人做人人爽 | 欧美精品在欧美一区二区少妇| 欧美日韩黄色一区二区| 欧美aaa级| 欧美手机在线视频| 欧美日本高清视频| 国产精品视频一区二区高潮| 欧美日韩中文另类| 国产美女高潮久久白浆| 国产精品扒开腿做爽爽爽视频| 国产毛片精品国产一区二区三区| 国产精品麻豆欧美日韩ww| 国精品一区二区| 国产主播在线一区| 亚洲国产精品第一区二区| 一区二区三区我不卡| 日韩一级精品视频在线观看| 亚洲精品国产精品久久清纯直播| 亚洲午夜在线视频| 日韩亚洲欧美一区二区三区| 午夜国产欧美理论在线播放 | 久久久综合网站| 欧美有码在线视频| 久久中文字幕导航| 久久婷婷影院| 欧美日韩色一区| 欧美日本三区| 国产日韩在线一区| 国产亚洲综合在线| 亚洲久久视频| 一本色道久久| 久久精品一区四区| 国产精品videosex极品| 国产精品区一区二区三区| 亚洲国产精品一区二区第四页av| 136国产福利精品导航网址应用| 亚洲天堂偷拍| 免费亚洲电影| 欧美久久久久| 激情一区二区三区| 亚洲国产精品激情在线观看| 亚洲在线播放电影| 蜜桃av综合| 欧美日韩国产在线一区| 狠狠色丁香婷婷综合影院| 亚洲国产成人久久综合| 欧美一区二区三区在线观看视频| 欧美精品videossex性护士| 欧美日韩免费一区二区三区| 伊人久久婷婷| 亚洲精品之草原avav久久| 久久米奇亚洲| 国产精品永久免费| 韩日欧美一区二区| 午夜免费在线观看精品视频| 欧美日韩免费| 国产免费成人av| 亚洲视频在线一区| 欧美黄色大片网站| 国产精品久久99| 99国产一区二区三精品乱码| 老妇喷水一区二区三区| 欧美日韩国产美| 亚洲国产欧美一区二区三区同亚洲| 日韩图片一区| 欧美成va人片在线观看| 合欧美一区二区三区| 亚洲久久一区二区| 欧美aaaaaaaa牛牛影院| 狠狠色狠狠色综合人人| 99国产精品| 欧美激情欧美狂野欧美精品| 1000部国产精品成人观看| 一区二区三区 在线观看视频| 欧美精品二区| 亚洲人线精品午夜| 免费亚洲一区二区| 国产精品免费看片| 亚洲一级在线| 欧美午夜剧场| 永久域名在线精品| 久久国产精品电影| 国产丝袜美腿一区二区三区| 亚洲精品三级| 欧美精品999| 亚洲精品久久久久久久久久久久久| 免费不卡中文字幕视频| 国产精品美女一区二区| 亚洲午夜精品视频| 国产精品久久久久aaaa樱花| 亚洲成人中文| 久久资源在线| 亚洲国产精品久久人人爱蜜臀| 久久―日本道色综合久久| 欧美天天在线| 亚洲香蕉在线观看| 欧美丝袜第一区| 亚洲狠狠婷婷| 欧美精品亚洲精品| 一本色道久久综合亚洲精品不| 欧美日本一道本| 伊甸园精品99久久久久久| 久久网站热最新地址| 18成人免费观看视频| 欧美777四色影视在线| 国产欧美一区二区三区沐欲| 久久激情网站| 亚洲成人在线观看视频| 欧美成人黄色小视频| 国产日韩综合一区二区性色av| 久久精品国产亚洲高清剧情介绍| 国产资源精品在线观看| 久久蜜桃资源一区二区老牛 | 欧美色图天堂网| 亚洲一区影院| 国产精品制服诱惑| 99精品福利视频| 欧美午夜久久| 欧美怡红院视频一区二区三区| 国产日韩欧美三级| 久久婷婷蜜乳一本欲蜜臀| 国产伦精品一区二区三区| 久久久久久国产精品一区| 亚洲国语精品自产拍在线观看| 欧美日韩国产成人在线观看| 亚洲第一免费播放区| 欧美日韩小视频| 欧美一区二区三区四区在线| 在线观看视频一区二区欧美日韩| 欧美激情一区二区| 亚洲黄色免费电影|