我经常说,该公司禁止在其他地方使用Lombok。我从来不明白为什么不使用它。我看到了一篇文章列出了一些“缺点”。在这里,我只想驳斥它。
原始文本如下:下面,与我的感受相结合,在使用Lombok谈论Lombok带来的主要疼痛点之后。
当我想将现有项目JDK从Java 8升级到Java 11时,我发现Lombok无法正常工作。
因此,我必须从项目的源代码中删除所有LOMBOK注释,并使用IDE的功能来生成Getter/setter,equals,hashcode,tostring和构造函数。您也可以使用Delombok工具来完成此过程。但是,这将花费大量时间。
我的反驳:
一旦许多公司确定JDK版本将很长一段时间不会更改(例如,许多银行项目都使用JDK1.6,您是否要求他升级为JDK11?),现在已将其发布到版本14,您认为有多少arethe公司会升级!
例如,许多公司都使用JDK1.8让您出去jdk14,我仍然继续使用JDK1.8。当您离开JDK20时,我相信Lombok肯定会支持更高版本。当时,兼容性问题将不存在。
当您在源代码中使用Lombok时,您的代码将由其他人使用,那么依靠您的代码的人也必须安装Lombok Plug -in(无论是否喜欢)。
同时,了解Lombok注释的使用需要花费时间。如果不是这样,则代码将无法正常运行。使用Lombok后,我发现这是一种非常流氓的行为。
我的反驳:
您并不假装是Lombok插头 - 您不喜欢它,它不是由您的个人愿望决定的。这是一项工作。公司需要做什么。这是法规。
伦波克是一个非常简单的知识点。您可以在十分钟内使用它,但是您抱怨说要学习需要时间。难道不是一直以程序员学习吗?您有这样的投诉,您只能放弃程序员的工作!
Lombok隐藏了Javabean包装的细节。如果您使用@AllargSconstructor注释,它将提供一个巨大的构造函数,使外界有机会在初始化对象时修改类中的所有属性。
首先,这是非常不安全的,因为我们不想在课堂中的某个属性中修改。
另外,如果某个类别中有数十个属性,则LOMBOK将向类注入数十个参数的构造函数,这是一种非理性行为。
其次,构造函数参数的顺序完全由LOMBOK控制。我们无法控制它。只有当您需要调试时,我们才会发现有一个奇怪的“ Xiaoqiang”在等您。
最后,在运行代码之前,您只能想象他们在所有Javabean中的外观,而您看不到它。
我的反驳:
对 @allargsconstructor的方法不满意,您可以使用@builder。这个支持您任意支持您的支持对象。如果您不知道Lombok的其他用法,那就不好了。
您想在Javabean中看到该方法吗?这对此有什么好处?Getter和Setter方法看起来好的是什么?您是否不知道Getter和Setter方法是什么样的?我真的不明白什么是好的?
当您使用Lombok编写模块的代码时,剩余的代码取决于该模块,需要将其引入LOMBOK依赖项,并且IDE中的Lombok插件也需要安装在IDE中。
尽管Lombok的依赖性不大,因为其中一个地方使用Lombok,但所有其余的依赖项都必须被迫加入Lombok Jar套件。这是一个侵入性的耦合。如果您遇到JDK版本,这将是一场灾难。
我的反驳:
当我们使用其他框架时,该框架会引入无数袋子。现在引入了一个小袋子,龙目木非常易于使用,几乎所有项目都将被使用。我们需要引入强制性吗?我们有意识地有意识地引入我们。它将在Maven的父母依赖中统一地引入。
使用Lombok,感觉很酷一段时间了,但是它会污染您的代码,破坏Java代码的完整性,可读性和安全性。在同一时间编写。
如果您真的想使代码更加精致,同时又要照顾可读性和编码效率,则可能希望使用基于JVM的语言的主流Scala或Kotlin。
我的反驳:
破坏诚信?再加上肿的getter&setter,您被肿和肿,没有您,说代码的完整性,您想做什么。
增加团队的技术债务?学习十个小的东西,最好的增长是多少。
使用Kotlin?通常,该公司不是那么积极。现在,许多支持事物的Kotlin在公司中还不成熟。
资料来源:toutiao.com/I6884399145390440964