网易首页 > 网易号 > 正文 申请入驻

Lombok 简单方便,为什么有些公司不让用?

0
分享至

我必须承认Lombok是一个非常好的Java库,它使您可以在编写更少代码的同时保持冷静。一些简单的注释可以杀死大量的模板代码。但是,大多数源代码用于阅读,执行时间却很少(您可以仔细阅读此语句)。

接下来,我将使用一些熟悉的场景来重复我们如何陷入龙目岛的把戏陷阱。

爱的开始,恨的起源

面对Lombok提供的许多“上帝职位”,您不必介意将插件添加到IDE中。对于IntelliJ IDEA播放器,只需搜索“ Lombok插件”以找到此工件并安装。通过安装Lombok插件开始爱上Lombok,从那以后,仇恨开始发芽。

在使用Lombok之前,我们的源代码如下所示:

每个JavaBean都将填充诸如上面的getter,setter,equals,hashCode和toString之类的模板代码,它们看起来像个胖子(必须承认Java是一种有缺陷的编程语言)。

安装Lombok插件后,IDE可以识别其出色的注释。使用Lombok的@Getter和@Setter批注后,代码将看起来像下面这样苗条:

代码现在看起来更酷吗?但这不是最佳时间。

由于其他方法已被替换,因此我们还要删除toString方法。如您所愿,您可以使用@ToString注释删除相应的方法:

在龙目岛的把戏之后,与最初的代码相比,它看起来很酷,苗条和性感吗?您认为这是结局吗?

不仅如此。您会发现类名称上的大注释看起来很尴尬。 Lombok提供了一个组合的@Data注释,它可以替换类名开头的类似于项的东西:

现在,龙目岛是否使您的物体在您的脑海中完美呈现?魔鬼的“身体”酷而精致。 Lombok还具有其他一些注释,例如@ Slf4j,@ NoArgsConstructor,@ AllArgsConstructor等。Lombok用法的介绍不是本文的重点。

上面代码行数的变化可能是无数程序员爱上Lombok的主要原因。就像肥胖的人逐渐成为苗条的人一样。

还让您看到一种现象:您认为程序员是懒惰的吗?有时它们比您想象的要懒惰。虽然很酷,但它也植入了代码的祸根。

美学扭曲,爱情隐患

扭曲的美学结果导致被检查对象处于亚健康状态。使用Lombok插件后,我们的代码也处于“亚健康”状态。回到开头的句子:大部分时间里所有的源代码都用于阅读,而执行只花很少的时间。

从本质上讲,我们都希望减少程序中的样板代码,以使代码更加简洁,从而提高代码的可读性和可维护性。

但是龙目岛没有实现我们追求的目标。它只是利用了Java语言的编译时间上的空白,并采用了一种巧妙的方式将我们需要的方法注入(编写)到当前类中。在这种情况下,这种过程很像破解我们的代码,只是一个很酷的技巧。

这种技巧既不明智也不安全,但是会破坏Java代码的现有功能以及代码的可读性。接下来,结合我使用龙目岛后的感受,谈谈龙目岛造成的主要痛点。

1. JDK版本问题

当我想将现有项目的JDK从Java 8升级到Java 11时,我发现Lombok无法正常工作。

因此,我不得不从项目源代码中删除所有Lombok批注,并使用IDE的内置函数来生成getter / setter,equals,hashCode,toString和构造函数方法。您也可以使用Delombok工具完成此过程。但这最终会消耗您大量的时间。

2.强制使用

当您在源代码中使用Lombok时,碰巧您的代码被其他人使用,那么依赖您代码的人还必须安装Lombok插件(无论他们是否喜欢),并花一些时间来了解Lombok使用注释,如果不这样做,则代码将无法正常运行。使用Lombok之后,我发现这是非常无赖的行为。

3.可读性差

Lombok隐藏了JavaBean封装的细节。如果使用@AllArgsConstructor批注,它将提供一个巨大的构造函数,该外部构造函数使外界有机会在初始化对象时修改类中的所有属性。

首先,这是非常不安全的,因为我们不想修改类中的某个属性。另外,如果某个类中有许多属性,则将有一个包含许多参数的构造函数。龙目岛被注入阶级,这是不合理的;

其次,构造函数参数的顺序完全由Lombok控制,而我们无法控制它。只有在需要调试时,您才会发现一个奇怪的“小强”在等着您。

最后,在运行代码之前,您只能想象它们在所有JavaBean方法中的样子,看不到它们。

4.增加代码耦合

当您使用Lombok编写某个模块的代码时,依赖于此模块的其他代码需要引入Lombok依赖性,同时,您需要在IDE中安装Lombok插件。

尽管Lombok的依赖包并不大,只是因为Lombok在一个地方使用,所以必须迫使所有其他依赖方加入Lombok的Jar包。这是一个侵入式耦合。如果再次遇到JDK版本问题,这将是一场灾难。

5.收益不值得损失

使用Lombok感觉很不错,但会污染您的代码,破坏Java代码的完整性,可读性和安全性,并增加团队的技术负担。这种伤害大于收益,而收益大于损失。操作。如果您确实想在考虑可读性和编码效率的同时使代码更精致,那么不妨使用主流的Scala或基于JVM的语言Kotlin。

总结一下

龙目岛本身就是一个出色的Java代码库。它使用巧妙的语法糖来简化Java的编码,并提供一种简化Java代码的方法。但是,使用此代码库时,您需要了解Lombok不是A标准Java库。

使用Lombok将增加团队的技术负担,降低代码的可读性,并增加代码的耦合和调试难度。

尽管Lombok在一定程度上减少了样板代码的编写,但它也带来了一些未知的风险。

如果您正在参与团队项目(或大型项目),请考虑随后的升级和扩展,是否要使用Lombok,请与您的团队沟通并三思。

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
美国会头号反华鹰派暴毙,“台独”关键人脉靠山塌了

美国会头号反华鹰派暴毙,“台独”关键人脉靠山塌了

海峡导报社
2026-07-12 21:34:02
不接班不炫富!许戈辉女儿活成豪门教育范本

不接班不炫富!许戈辉女儿活成豪门教育范本

TVB的四小花
2026-07-14 00:14:00
美抢中国厂子插上国旗,结果机器只听中文!这段子比好莱坞还魔幻

美抢中国厂子插上国旗,结果机器只听中文!这段子比好莱坞还魔幻

喜你成疾药石无医
2026-07-12 14:35:49
韩国队一辈子耻辱名场面,被墨西哥印在可乐罐全国售卖,太扎心!

韩国队一辈子耻辱名场面,被墨西哥印在可乐罐全国售卖,太扎心!

大稻网络科技
2026-07-13 10:49:44
雷军让卖车的和卖房的都沉默了,网友:第一次在车上看到户型图

雷军让卖车的和卖房的都沉默了,网友:第一次在车上看到户型图

沙雕小琳琳
2026-07-11 20:19:33
嫌难看打不倒周星驰!《功夫女足》3天票房破23亿 2关键影评输了

嫌难看打不倒周星驰!《功夫女足》3天票房破23亿 2关键影评输了

ETtoday星光云
2026-07-13 15:07:08
实力的尽头是玄学!阿根廷申请半决赛穿客场球衣,此前2次均晋级

实力的尽头是玄学!阿根廷申请半决赛穿客场球衣,此前2次均晋级

全景体育V
2026-07-13 14:24:33
具俊晔争遗产不到24小时丑闻曝光,大S是否后悔引关注

具俊晔争遗产不到24小时丑闻曝光,大S是否后悔引关注

悠悠说世界
2026-07-13 23:48:52
内部人士:勇士队在勒布朗·詹姆斯争夺战的形势如过山车般回升

内部人士:勇士队在勒布朗·詹姆斯争夺战的形势如过山车般回升

好火子
2026-07-12 23:29:27
正式退出,陈幸同暂离队,前往四川,退役安置或曝光

正式退出,陈幸同暂离队,前往四川,退役安置或曝光

泥说体育
2026-07-13 22:09:44
已婚女子和男上司在办公室暧昧,17分钟小视频传出,如今怎样了

已婚女子和男上司在办公室暧昧,17分钟小视频传出,如今怎样了

丫头舫
2026-06-26 11:29:17
内蒙16岁独子遇害,母亲曝诱因,网友:不值得同情

内蒙16岁独子遇害,母亲曝诱因,网友:不值得同情

梦想的旅途照进现实
2026-07-13 13:25:00
悬念揭晓!詹姆斯将公布决定...

悬念揭晓!詹姆斯将公布决定...

体育新角度
2026-07-13 15:12:21
“有钱人不长你这样!”女孩晒天价矿泉水被嘲,家长认清现实!

“有钱人不长你这样!”女孩晒天价矿泉水被嘲,家长认清现实!

林林先生
2026-07-10 09:05:03
成都一男子欠债30余万元,拿到上百万元转让款后将钱转给女儿、前妻,伪造转让协议……法院判了

成都一男子欠债30余万元,拿到上百万元转让款后将钱转给女儿、前妻,伪造转让协议……法院判了

环球网资讯
2026-07-13 18:17:30
国际足联认证:横向传球纯属浪费时间!世界杯强队全在干同一件事

国际足联认证:横向传球纯属浪费时间!世界杯强队全在干同一件事

凉了时光人
2026-07-13 10:09:17
特斯拉终于听劝!Model Y新版本亮相,3秒级加速+CDC+超充,要掀桌

特斯拉终于听劝!Model Y新版本亮相,3秒级加速+CDC+超充,要掀桌

生活魔术专家
2026-07-11 20:41:57
豪横!周大生老板娘46岁生日,老公送的“有钱花”,一家四口同框

豪横!周大生老板娘46岁生日,老公送的“有钱花”,一家四口同框

另子维爱读史
2026-07-11 20:52:41
同事为羞辱我,给整个办公室的人点了外卖,唯独没有我,之后,我给所有人点了奶茶,她也有,反倒让她手足无措了

同事为羞辱我,给整个办公室的人点了外卖,唯独没有我,之后,我给所有人点了奶茶,她也有,反倒让她手足无措了

品读时刻
2026-07-12 09:05:44
卡里克捡到宝了!曼联玻璃人世界杯封神,评分断层第一

卡里克捡到宝了!曼联玻璃人世界杯封神,评分断层第一

奶盖熊本熊
2026-07-13 03:39:57
2026-07-14 01:00:49
迷糊兔Combo
迷糊兔Combo
深入学习java知识
25文章数 13关注度
往期回顾 全部

科技要闻

OpenAI与Anthropic互掐,最强AI也怕你不用

头条要闻

媒体:格雷厄姆猝死掀翻美国政坛 特朗普中期选举变天

头条要闻

媒体:格雷厄姆猝死掀翻美国政坛 特朗普中期选举变天

体育要闻

世界杯月赚1.7亿,51岁的他仍是顶流

娱乐要闻

具俊晔“深情人设”崩塌,遗产瓜开撕

财经要闻

SK海力士暴跌15%原因找到了?

汽车要闻

小米澎程N90 Max工信部信息曝光 全尺寸旗舰 露营版首秀

态度原创

本地
游戏
旅游
教育
健康

本地新闻

打的直达拉萨,一条视频拿下五十万奖金

黑旗RE惊现4万点赞玉足照!玩家太爱 官方"猥琐"回应

旅游要闻

滇西不起眼小镇竟是西汉古县城,传说凤凰定居东山,夜间遍地金光

教育要闻

河南考生艾米被北电正式录取,专业成绩83.5分,全国第三名!

这几类人离中风最近!有你吗?

无障碍浏览 进入关怀版