精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

騰訊電商二面:Lombok 是銀彈?還是陷阱?

開發(fā)
本文從面試題出發(fā),講解了 Lombok 的工作原理以及其優(yōu)點和需要考慮的因素。

在 Java語言中,有大量類似于 getter、setter、toString 這樣的模板代碼,為了解決這個問題,一個流行的框架 Lombok誕生了。前幾天看到騰訊的一道 2面題:Lombok是銀彈?還是陷阱?生產(chǎn)環(huán)境建議使用 Lombok嗎?今天我們一起來聊一聊。

Lombok是什么?

Lombok是一個三方開源的 Java庫,通過注解可以自動將代碼插入到編輯器和構(gòu)建工具中,為 Java程序員省略了很多樣板代碼的編寫,除了生成getter、setter方法,還可以生成 equals、hashCode和各種類構(gòu)造函數(shù)等。在很多 Java程序員的眼中簡直就是銀彈。

Lombok如何使用?

Lombok的使用很簡單,主要是通過注解來精簡代碼,常用的注解如下:

  • @Getter:作用在類上,為實體類所有屬性添加 getter方法;
  • @Setter:作用在類上,為實體類所有屬性添加 setter方法;
  • @ToString:作用在類上,當調(diào)用toString()方法,可以輸出實體類中所有屬性的值。
  • @Data:作用在類上,相當于同時使用了@ToString、@EqualsAndHashCode、@Getter、@Setter和@RequiredArgsConstrutor這些注解;
  • @AllArgsConstructor:作用在類上,為實體類生成包含所有屬性參數(shù)的構(gòu)造方法;
  • @NoArgsConstructor:作用在類上,為實體類生成無參構(gòu)造方法;
  • @RequiredArgsConstructor:作用在類上,配合@NonNull注解使用,生成指定參數(shù)的構(gòu)造方法。比如在age屬性前面加@NonNull注解,則User生成需要age參數(shù)的構(gòu)造方法;

下面給出了一個 Lombok @Data注解的使用示例:

import lombok.Data;
 
@Data
public class User {
    private String id;
    private String name;
}

上述示例通過在類上使用 @Data注解后,我們就不需要再手動添加 getter、setter等模版代碼,整個代碼看起來簡潔了很多。

Lombok如何工作?

從 Lombok如何使用的講解中我們可以看到:Lombok主要是依賴注解來標識(標記)需要在該類中生成哪些代碼。除此之外,還有一個重要的技術(shù)點是抽象語法樹(AST)。

抽象語法樹(AST,Abstract Syntax Tree)是一種用于表示程序源代碼結(jié)構(gòu)的樹狀數(shù)據(jù)結(jié)構(gòu)。它抽象出代碼的語法結(jié)構(gòu),忽略某些細節(jié),以便于編譯器或解釋器進行分析和處理。

在 Java中,AST是一種在生成字節(jié)碼之前創(chuàng)建的中間結(jié)構(gòu),如下圖為 AST示例:

Lombok是注解和 AST的完美組合,Lombok通過識別注解,然后操縱 AST將不存在的樣板代碼插入到類中。

但是 Lombok并不是直接修改源代碼文件,而是在編譯過程中動態(tài)生成代碼,為了實現(xiàn)這一點,Lombok需要攔截 Java編譯器的調(diào)用,而這種攔截是通過插件來實現(xiàn)的,比如 IntelliJ, VSCode, Eclipse 或者在構(gòu)建工具 Maven, Gradle, Make等。因此,如果選用的 IDE或依賴/構(gòu)建管理器不支持 Lombok,代碼將無法編譯。

考慮因素

Lombok為 Java省略了很多樣板代碼的編寫,但是,對于項目中使用 Lombok,我們還是應(yīng)該多一些思考,這里主要總結(jié)為下面 4個考慮點:

1.編譯時間

由于 Lombok在編譯時完成樣板代碼的填充,因此,勢必導(dǎo)致編譯時間的增加,尤其是在大型代碼庫中,這種增加可能會有很大影響,盡管 Lombok隨著版本的升級,性能也在提升,但使用 Lombok的時間仍然比不使用 Lombok的時間長。

2.友好性

Lombok大大減少了Java類中的樣板代碼,特別是在領(lǐng)域類(TOs、DTOs、實體)中,這些類通常有很多類級別的屬性。

但是,使用 Lombok后,所有參與這個項目開發(fā)的技術(shù)人員都需要安裝 Lombok插件,因此,對于不愿意使用 Lombok的開發(fā)人員來說不太友好。另外,如果團隊中有剛工作的組員,如果一開始就在 Lombok這種環(huán)境下,那么對于他們的成長也是不友好的。

3.Java標準

在開發(fā)過程中,我們通常會使用 IDE或構(gòu)建工具自動編譯Java代碼,所以 Lombok可以在這個階段自動完成它的工作,但是,假如我們只是使用 javac來編譯源代碼,如果源代碼中使用了 Lombok生成的get方法,這種情況下編譯會出錯提示get方法不存在。

4.兼容性

如果項目中涉及 JDK的版本升級,可能出現(xiàn)兼容性問題,因為每個版本可能會改變 AST的生成和解釋方式。因此,如果使用了 Lombok,在升級 Java版本后,可能會導(dǎo)致項目無法編譯。

盡管這個問題重新編譯后可以解決,但是,如果使用了 Lombok,還是要注意上述提到的可能編譯失敗的問題。

5.開發(fā)和CR

Lombok 是在編譯期為類生成樣板代碼,因此,開發(fā)人員在調(diào)試時看不到這些代碼,可能會給調(diào)試帶來一些困難,另外,Lombok 自動生成的代碼是隱式的,可能會讓代碼行為不夠透明,給代碼審查和維護帶來一些挑戰(zhàn)。

總結(jié)

本文從面試題出發(fā),講解了 Lombok的工作原理以及其優(yōu)點和需要考慮的因素:

1.優(yōu)點

可以大大減少樣板代碼的手動編寫

2.考慮因素

  • 編譯時間
  • 友好性
  • Java標準
  • 兼容性
  • 開發(fā)和CR

3.個人建議

對于我個人而言,傾向于在項目不使用 Lombok,主要有以下 3個原因:

  • Lombok只是減少樣板代碼,幫助程序員偷了懶,并沒有給項目帶來什么實質(zhì)性的收益,而且這些樣板代碼 IDE也可以快速生成;
  • 基于上述 5個考慮因素的任何一個,引入 Lombok都不是一個很好的決定;
  • 網(wǎng)上看到了 Lombok很多花哨的使用方式,這樣潛在的風(fēng)險更大;

最后,項目中是否使用 Lombok,取決于個人喜好以及團隊和項目的選擇(大廠一般都會禁用 Lombok),但是,上述的考慮因素或許可以給你的決策多一個參考。

責(zé)任編輯:趙寧寧 來源: 猿java
相關(guān)推薦

2024-07-10 12:23:10

2011-11-21 10:45:08

亞馬遜

2013-09-18 16:12:35

2017-06-08 09:53:52

免密支付移動智能終端網(wǎng)絡(luò)安全

2014-03-11 10:12:10

2021-10-22 19:21:33

華為云

2023-04-27 14:39:57

騰訊C++后端

2021-10-18 08:41:20

Redis ACID事務(wù)

2021-11-30 07:51:29

共享內(nèi)存進程

2021-04-25 09:58:48

mmapJava面試

2019-01-09 11:02:18

2013-10-31 11:19:19

戴爾服務(wù)電子商務(wù)轉(zhuǎn)型

2021-03-17 15:54:32

IO零拷貝方式

2016-08-18 23:37:24

2017-08-02 10:08:24

2013-11-19 10:17:06

雙十一騰訊云

2013-01-09 13:58:00

銀行移動電商移動互聯(lián)網(wǎng)

2013-06-17 14:24:09

阿里

2014-12-08 10:32:45

2018-06-13 14:48:32

電商
點贊
收藏

51CTO技術(shù)棧公眾號

国产成人永久免费视频| 国产精品爱久久久久久久| 欧美极品jizzhd欧美仙踪林| 91白丝在线| 91婷婷韩国欧美一区二区| 欧美最近摘花xxxx摘花| 亚洲黄色网址大全| 欧美在线在线| 91福利区一区二区三区| 在线视频亚洲自拍| 四虎精品成人影院观看地址| 麻豆成人av在线| 久久久久久久色| 亚洲 小说 欧美 激情 另类| 成人看片毛片免费播放器| 亚洲综合一区二区三区| 四虎永久国产精品| 亚洲精品综合久久| 麻豆国产欧美日韩综合精品二区 | 国产成人啪精品视频免费网| 中文字幕五月天| 美女亚洲一区| 精品国产一区二区在线观看| 欧美少妇性生活视频| 日本资源在线| 中文字幕永久在线不卡| 久久国产精品高清| 国产成人久久精品77777综合| 免费日韩视频| 久久琪琪电影院| 情侣偷拍对白清晰饥渴难耐| 国产日产一区 | 久久网站免费观看| 日韩激情av在线免费观看| 涩多多在线观看| av激情成人网| 日韩欧美中文字幕在线播放| 国产 欧美 日本| 日本三级在线视频| 国产日韩欧美a| 久久久久久国产精品一区 | 麻豆视频在线看| 国产欧美视频在线观看| 国产一区精品在线| 性一交一乱一乱一视频| 国精品**一区二区三区在线蜜桃 | 蜜臀精品一区二区三区在线观看| 久久久视频在线| 青青草激情视频| 一本到12不卡视频在线dvd| 最近2019年好看中文字幕视频| 成年人网站免费在线观看| 国产精品网站在线看| 欧美草草影院在线视频| 国产精品19p| 日韩欧美另类中文字幕| 欧美一区二区网站| 亚洲天堂国产视频| 欧美xxxx性| 欧美美女一区二区在线观看| 国产日韩欧美久久| 国产精品美女午夜爽爽| 欧美精品在欧美一区二区少妇| 欧美婷婷精品激情| 日本午夜免费一区二区| 7777精品伊人久久久大香线蕉完整版 | 91中文字幕在线观看| 国产精品久久无码一三区| 精品伊人久久久久7777人| 亚洲va电影大全| 国产福利小视频| 成人性生交大合| 精品国产一区二区三区免费| 天天干天天爽天天操| 91女人视频在线观看| 日韩国产欧美精品| 日本视频在线播放| 亚洲韩国精品一区| 日韩在线综合网| 亚洲精品在线影院| 欧美精品视频www在线观看| 韩国一区二区在线播放| jizzjizzjizz欧美| 亚洲精品视频播放| 一本一本久久a久久| 欧美福利电影在线观看| 久久99久国产精品黄毛片入口| 日韩久久精品视频| 日本一不卡视频| 91亚洲精品一区二区| 日本精品999| 日本一区二区视频在线| 男人j进女人j| 亚洲少妇视频| 欧美巨大另类极品videosbest | 亚洲人成网站在线播| 成年人视频软件| 影音先锋久久精品| 国产精品美腿一区在线看| www.xxx国产| 久久久久久久久久久黄色 | 中国日本在线视频中文字幕| 亚洲综合一区二区| 青青青在线视频免费观看| 日本免费精品| 国产亚洲精品久久久久久牛牛| 在线观看亚洲网站| 噜噜噜久久亚洲精品国产品小说| 成人春色激情网| 台湾av在线二三区观看| 一区二区三区中文免费| 国产成人综合一区| 国产成人tv| 亚洲天堂视频在线观看| 久热精品在线观看| 久久精品av麻豆的观看方式| 久久久久se| 国产黄色大片在线观看| 欧美曰成人黄网| 国产国语性生话播放| 伊人久久大香线蕉综合四虎小说| 国产99在线|中文| 男人天堂手机在线观看| 亚洲三级电影网站| 中文字幕第21页| 欧洲亚洲视频| 欧美激情伊人电影| 国产裸体永久免费无遮挡| 国产午夜一区二区三区| 日韩欧美一区二| 最新国产一区二区| 久久亚洲私人国产精品va| 成人一级免费视频| 91在线码无精品| 欧美久久在线观看| 日韩欧美另类中文字幕| 久久综合国产精品台湾中文娱乐网| 精品久久久久久久久久久久久久久久久久 | 亚洲天堂免费在线观看视频| 手机在线免费观看毛片| 久久91精品| 欧美一区二粉嫩精品国产一线天| 人妻va精品va欧美va| 一区二区在线看| 91视频福利网| 中文字幕一区二区av| 国产欧美日韩亚洲精品| 成年人在线观看| 在线日韩一区二区| 国产欧美一区二区三区在线观看视频 | 最新69国产成人精品视频免费| 精品久久久久久久久久久国产字幕| 久久综合五月天婷婷伊人| 99热自拍偷拍| 日韩影视在线观看| 欧美一区二区三区精品电影| 免费福利在线视频| 在线免费不卡视频| 婷婷丁香综合网| 精久久久久久久久久久| 亚洲国产精品女人| 精品一区二区三区中文字幕视频 | 黄色视屏在线免费观看| 日韩av中文字幕在线免费观看| 国产情侣自拍av| 久久久一区二区| 久久99999| 婷婷亚洲五月| 成人永久免费| 筱崎爱全乳无删减在线观看 | 五十路六十路七十路熟婆| 亚洲美女啪啪| 日韩精品久久久免费观看| 日韩av黄色| 欧美极品美女视频网站在线观看免费 | av资源新版天堂在线| 亚洲另类欧美自拍| 在线观看国产一区二区三区| 亚洲精品高清视频在线观看| 国产chinese中国hdxxxx| 久久激情一区| 中文字幕日韩精品久久| japanese色系久久精品| 欧美壮男野外gaytube| 91在线直播| 欧美成人女星排行榜| 中文字幕超碰在线| 国产精品久久久久影视| 亚洲少妇一区二区三区| 午夜亚洲伦理| 穿情趣内衣被c到高潮视频| 日韩欧美ww| 国产日韩欧美在线| 爱看av在线入口| 一区二区三区国产视频| 精品人妻一区二区三区日产乱码| 欧美性猛交xxx| 日韩在线视频网址| 91一区二区三区在线观看| 三级视频中文字幕| 亚洲电影在线| 尤物国产精品| 亚洲婷婷影院| 国产激情一区二区三区在线观看| 欧美日韩五码| 久99九色视频在线观看| 成全电影播放在线观看国语| 欧美va日韩va| 伊人成人在线观看| 精品久久久久久久久久久久久久| 免费精品在线视频| 91老师片黄在线观看| aaaaa黄色片| 久久精品国产秦先生| 日韩av一二三四区| 欧美不卡在线| 一区二区三区四区| 久久91麻豆精品一区| 99久久久精品免费观看国产| 国产成人毛片| 国产mv久久久| 久草在线中文最新视频| 九九精品在线播放| 日本激情视频在线观看| 亚洲人在线视频| 五月天激情开心网| 精品国产亚洲在线| 99热这里只有精品3| 欧美日韩一区不卡| 在线免费观看国产精品| 欧美午夜www高清视频| a级黄色片免费看| 综合久久久久久久| 人妻无码一区二区三区免费| 91亚洲永久精品| 尤物网站在线观看| 丁香亚洲综合激情啪啪综合| 亚洲精品国产久| 精品一区二区三区在线观看国产| www.欧美日本| 日韩国产成人精品| 成年人小视频网站| 日韩 欧美一区二区三区| 99精品免费在线观看| 亚洲欧美卡通另类91av| 六月丁香激情网| 国产日韩欧美三区| 99热在线这里只有精品| 亚洲一区二区成人| 国产91在线视频观看| 99国产精品视频免费观看一公开 | 91麻豆精品久久毛片一级| 国产欧美一区在线| 国产三级在线观看完整版| 日本一区二区三区dvd视频在线| 成人无码av片在线观看| 国产婷婷色一区二区三区| 日韩一级av毛片| 亚洲国产高清aⅴ视频| 天堂网av2018| 亚洲青青青在线视频| 美国黄色小视频| 亚洲综合一区二区| 日韩三级小视频| 日韩欧美在线播放| 亚洲手机在线观看| 欧美一级二级三级蜜桃| 免费观看的毛片| 亚洲老头老太hd| 日本电影全部在线观看网站视频| 精品国模在线视频| 搞黄网站在线看| 青青久久av北条麻妃黑人| av成人在线看| 亚洲一区中文字幕在线观看| www.豆豆成人网.com| 精品日产一区2区三区黄免费| 免费电影一区二区三区| 亚洲成人午夜在线| 国产精品啊啊啊| 欧美少妇性生活视频| 国产在线视频一区二区三区| 挪威xxxx性hd极品| 日本一区二区三区四区在线视频| 婷婷激情四射网| 欧美日韩中文字幕在线视频| 最近中文在线观看| 精品国产亚洲在线| 国产视频网站在线| 色综合天天狠天天透天天伊人| 三级在线看中文字幕完整版| 国产在线视频欧美| 加勒比色老久久爱综合网| 手机成人在线| 亚洲久色影视| 99日在线视频| 久久一日本道色综合| 成年人网站在线观看视频| 天天色综合成人网| 夜夜嗨av禁果av粉嫩avhd| 精品区一区二区| 天堂а√在线资源在线| 性视频1819p久久| 日韩av黄色| 欧美一区二区三区精美影视| 欧美精品黄色| 亚洲污视频在线观看| 99久久久久久| 爱爱视频免费在线观看| 色哟哟在线观看一区二区三区| 精品国产九九九| 尤物tv国产一区| 中文字幕乱码在线播放| 91九色露脸| 日韩一区二区三区免费播放| 自拍日韩亚洲一区在线| 国产综合一区二区| 性猛交娇小69hd| 日韩欧美在线国产| 色呦呦中文字幕| 欧美美女18p| 欧洲亚洲精品久久久久| 日本视频一区二区不卡| 亚洲精品视频啊美女在线直播| 中文字幕1234区| 亚洲国产高清不卡| 国产精品xxxxxx| 精品视频www| 特黄毛片在线观看| 国产98在线|日韩| 欧美日本不卡| 日本女人黄色片| 亚洲色大成网站www久久九九| 欧美 亚洲 另类 激情 另类| 亚洲精品美女久久久久| 成人免费网站观看| 国产精品自拍首页| 牛夜精品久久久久久久99黑人| www.com黄色片| 国产精品全国免费观看高清| 波多野结衣高清在线| 亚洲欧美日韩国产中文| av电影一区| 欧洲精品码一区二区三区免费看| 国产欧美短视频| 五月婷婷综合在线观看| 狠狠做深爱婷婷久久综合一区| 天堂а在线中文在线无限看推荐| 欧美人交a欧美精品| 日本一区二区三区视频在线看| 永久免费在线看片视频| 国产综合成人久久大片91| 小泽玛利亚一区二区免费| 91精品欧美福利在线观看| 国产鲁鲁视频在线观看特色| 91免费福利视频| 欧美精品一卡| 亚洲色图欧美日韩| 欧美性极品少妇精品网站| 丁香在线视频| 国产日韩欧美视频| 欧美日韩在线大尺度| 日本精品一二三区| 午夜精品一区在线观看| 日韩国产福利| 国产精品第七十二页| 欧美激情777| 国产xxx在线观看| 五月天中文字幕一区二区| 欧美孕妇孕交| 成人黄色免费在线观看| 欧美午夜不卡| 免费黄色在线视频| 欧美在线影院一区二区| av网站大全在线| 国产日韩在线一区二区三区| 男人的天堂成人在线| 精品视频第一页| 日韩精品在线网站| 高清不卡av| 中文字幕第一页亚洲| 国产91精品欧美| 中文字幕一区在线播放| 北条麻妃久久精品| 岛国精品一区| 视频在线观看免费高清| 一级日本不卡的影视| 视频一区二区在线播放| 国产日韩欧美日韩大片| 日韩视频二区| 亚洲欧美精品久久| 亚洲国产美女精品久久久久∴| 日韩精选视频| 伊人再见免费在线观看高清版| 26uuu国产电影一区二区| 一级成人免费视频| 97色在线视频观看| 国产精品久久久久久| 日韩精品一区二区三区高清免费| 欧美日韩亚洲另类|