新来的老大说,“公司以后禁止使用Lombok”,我表示反对~

【Java基础知识 16】禁止使用Lombok,在Lombok的加持下,“小狗”.equals(“老狗”) = true 大家好,我是哪吒。我有一个同学,在一家小型互联网公司做Java后端开发,最近他们公司新来了一个技术总监,这位技术总监对技术细节很看重,一来公司之后就推出了很多"政策",比如定义了很多开发规范、日志规范、甚至是要求大家统一使用Idea进行开发。其中有一项,就是禁止使用Lombok,但是他并没有明确的说明原因,我的同学是一个“懒加载的CRUD程序员”,不用Lombok,岂不是要费很多事儿?他特意百度了一下,是这样说的。看似很有道理,条条是道,但我认为有些以偏概全,自以为是了。目前国内大多数Java项目,采用的都 阅读详情

点击上方“芋道源码”,选择“设为星标”

管她前浪,还是后浪?

能浪的浪,才是好浪!

每天 8:55 更新文章,每天掉亿点点头发...

源码精品专栏

 

来源:toutiao.com/i6884399145390440964

  • JDK版本问题

  • 维持使用

  • 杰出性差

  • 代码编码度增加

  • 得不偿失失


经常在其他各个地方在说公司禁止使用Lombok,我一直不明白为什么不让用,今天看到文章串联了一下“缺点”,这里我只想狠狠地反驳,看到上面的理由我竟无言以对。

JDK版本问题

当我想要将现有项目的JDK从Java 8升级到Java 11时,我发现Lombok不能正常工作了。于是我不得不将所有的Lombok注解从项目源代码中清除,并使用IDE自带的功能生成getter / setter,等于,hashCode,toString以及构造器等方法,你也可以使用Delombok工具完成这一过程。那样终究会消耗你很多的时间。

我的反驳:很多公司一旦确定JDK版本在很长的时间都不会改变(某些银行项目很多都在用jdk1.6,你问他愿意升级到jdk11不?),现在都出到14版本了,你看有多少公司会升级!如现在很多公司都在用JDK1.8,任你出到JDK14,我依然继续使用JDK1.8,等你出到JDK20时我相信Lombok当然会支持更高的版本,那时兼容问题将不存在。

维持使用

当你的源代码中使用了Lombok,恰好你的代码又被其他人所使用,那么依赖你代码的人,也必须安装Lombok插件(不管他们喜不喜欢),同时还要花费时间去了解Lombok注解的使用情况,如果不那么做,代码将无法正常运行。使用过Lombok之后,我发现这是一种很流氓的行为。

我的反驳:你装不装Lombok插件不是你喜不喜欢,不是由你个人意图决定的,这是工作,公司要求怎么做就要怎么做,这是规定。Lombok是一个非常简单的知识点,十分钟就能上手使用,你却不得不花费时间学习,作为程序员不是无时无刻都在学习吗,你有这种拒绝只能你放弃程序员这个工作吧!

杰出性差

Lombok隐藏了JavaBean封装的细节,如果你使用@AllArgsConstructor注解,可以提供一个巨型构造器,让外界有机会在初始化对象时修改类中所有的属性。

首先,这是极端不安全的,因为类中某系属性我们是不希望被修改的;

另外,如果某个类中有几十个个属性存在,就会有一个包含几十个参数的构造器被Lombok注入到类中,这是不理智的行为;

这样,构造器参数的顺序完全由Lombok所以制,我们并不能纠正,只有当你需要调试时才发现有一个奇怪的“小强”在等着你;

最后,在运行代码之前,所有JavaBean中的方法你只能想象他们长什么样子,你并不能看见。

我的反驳:不满意@AllArgsConstructor的做法你可以使用@Builder啊,这个支持你任意顺序任意定量的创建对象,你不了解Lombok的其他用法就说它不好。你要看JavaBean中的方法?它有啥好看的,Getter和Setter方法有啥好看的,你不知道Getter和Setter方法长什么样吗?实在不明白有什么好看的??

代码编码度增加

当您使用Lombok来编写某一个模块的代码后,其余依赖此模块的其他代码都需要约会Lombok依赖,同时还需要在IDE中安装Lombok的插件。

尽管Lombok的依赖包并不大,但就因为因为其中一个地方使用了Lombok,其余所有的依赖方都要强制加入Lombok的Jar包,这是一种入侵式的替代,如果再遇上JDK版本问题,这将是一场一场灾难。

我的反驳:我们在使用其他框架时,那框架约会了不计其数的包,现在要约会一个很小的包都在斤斤计较,Lombok这么好用,几乎所有项目都会使用到,这还需要强制约会吗,我们自觉的都会在maven的父母依赖中统一约会了。

得不偿失失

使用Lombok,一时觉得很爽,但它却污染了你的代码,破坏了Java代码的替代,导致性和安全性,同时又增加了团队的技术债务,这是一种弊病大于利,得不偿失失的操作。如果您确实想让自己的代码更精炼,同时又兼顾顾性性和编码效率,不妨使用主流的Scala或Kotlin这样基于JVM的语言。

我的反驳:破坏了最终?加上臃肿的Getter&Setter你却嫌弃臃肿,不加你又说破坏代码的事实,你想怎么做。增加团队的技术债务?学个Lombok十分钟的事情,有什么好增加的。要使用Kotlin?一般公司都没有这么激进吧,现在Kotlin很多配套东西在企业中使用还不成熟吧。

大家还有什么不同观点可以互相讨论。



欢迎加入我的知识星球,一起探讨架构,交流源码。加入方式,长按下方二维码噢:

已在知识星球更新源码解析如下:

最近更新《芋道 SpringBoot 2.X 入门》系列,已经 20 余篇,覆盖了 MyBatis、Redis、MongoDB、ES、分库分表、读写分离、SpringMVC、Webflux、权限、WebSocket、Dubbo、RabbitMQ、RocketMQ、Kafka、性能测试等等内容。

提供近 3W 行代码的 SpringBoot 示例,以及超 4W 行代码的电商微服务项目。

获取方式:点“在看”,关注公众号并回复 666 领取,更多内容陆续奉上。

兄弟,艿一口,点个赞!????

Go:模幂算法(附完整源码) 阅读详情

相关推荐

DeepID3_Face_Recognition_with_Very_Deep_Neural_Networks

DeepID3_Face_Recognition_with_Very_Deep_Neural_Networks.pdf

【终于明白为啥有团队禁止使用lombok】

lombok不生效

更新失败的博客 989

什么是plm系统?-数字化转型网

当今世界,产品研发能力是企业在激烈的市场竞争中保持战略优势的核心竞争力之一。如何有效地缩短产品研发周期、改善产品服务的设计迭代流程、有效降低产品的研发成本,也是企业面临的主要问题之一。PLM(Product Lifecycle Management,产品生命周期管理)在优化产品研发的全管理流程、增强企业产品的市场竞争力方面具有关键的作用。

cxo17757154043的博客 884

为什么要放弃 Lombok ?

公众号关注“GitHubDaily”设为 “星标”,每天带你学编程!作者 :ramostear来源 :http://suo.im/5DZBh3如果您正在阅读此文,想必您对 Projec...

GitHubDaily 1031

Informer:比Transformer更有效的长时间序列预测

目录 AAAI 2021最佳论文:比Transformer更有效的长时间序列预测 Background Why attention Methods:the details of Informer Solve_Challenge_1:最基本的一个思路就是降低Attention的计算量,仅计算一些非常重要的或者说有代表性的Attention即可,一些相近的思路在近期不断的提出,比如Sparse-Attention,这个方法涉及了稀疏化Attention的操作,来减少Attention计算量,然后涉及的

To be a better man 1万+

AUTOSAR开发实战:NvM模块如何解决汽车电子中的EEPROM与Flash存储难题?

本文深入探讨了AUTOSAR中的NvM模块如何有效解决汽车电子系统中EEPROM与Flash存储的难题。通过分层架构设计,NvM模块实现了硬件抽象与统一管理,支持数据一致性检查、错误恢复等高级功能,显著提升了存储可靠性和耐久性。文章结合实战案例,详细解析了NvM的核心机制及工程优化方案,为汽车电子开发者提供宝贵参考。

e3f4g5的博客 566

为什么有些公司不让用 Lombok ?

不得不承认,Lombok 是一个很不错的 Java 库,它可以让你在少写代码的同时耍耍酷,简单的几个注解,就可以干掉一大片模板代码。但是,所有的源代码很多时候是用来阅读的,只有很少的时间是用来执行的 (你可以细品这句话)。 接下来,我将用几个大家耳熟能详的场景,重演我们是如何掉入 Lombok 的戏法陷阱。 爱的开始,恨的起源 面对 Lombok 提供的诸多 “神走位”,你并不会介意在 IDE 上新增一个插件。对于 IntelliJ IDEA 玩家而言,只需搜索 “Lombok Plugin” 便可找到这款

程序员麦冬的博客(公众号同名) 545

Argoverse2数据集保姆级导入教程:从下载到预处理全流程解析

本文详细解析了Argoverse2数据集的完整导入流程,从环境配置、数据下载到预处理和高效加载策略。作为自动驾驶领域的标杆数据集,Argoverse2提供多模态传感器数据和高精地图信息,帮助研究者快速搭建数据处理流水线。文章包含实用代码示例和性能优化技巧,特别适合自动驾驶算法开发者参考。

weixin_29035405的博客 338

lombok依赖_新来的老大说,“公司以后禁止使用Lombok”,我表示反对~

经常在其它各个地方在说公司禁止使用Lombok,我一直不明白为什么不让用,今天看到一篇文章列举了一下“缺点”,这里我只想狠狠地反驳,看到列举的理由我竟无言以对。JDK 版本问题当我想要将现有项目的 JDK 从 Java 8 升级到 Java 11 时,我发现 Lombok 不能正常工作了。于是我不得不将所有的 Lombok 注解从项目源代码中清除,并使用 IDE 自带的功能生成 getter/se...

weixin_39907591的博客 106

汇川PLC用户程序结构详解:如何像搭积木一样配置多任务?附EtherCAT最佳实践

本文深入解析汇川PLC用户程序结构,阐述如何像搭积木一样,通过POU、FB、FC等模块化组件高效配置多任务。文章重点结合EtherCAT通讯场景,分享了任务周期、优先级设置的最佳实践与关键避坑指南,帮助工程师构建稳定、高效的运动控制系统。

weixin_29184075的博客 541

三峡大学-微机原理与接口技术实验

其中,A15接E1,因此,A15为1,A14A13A12A11A10A9A8A7通过八输入与非门74LS30与E2连接,因此A14A13A12A11A10A9A8A7为11111111,A6A5A4与CBA连接,因此A6A5A4为101,A3A2A1A0不参与译码,因此IO5的地址范围为1111 1111 1101 0000B~1111 1111 1101 1111B,即0FFD0H~0FFDFH。如图1所示,若IO0输出为低电平,则需要E1接高电平,E2接低电平,E3接低电平,CBA的输入为000。

m0_62222486的博客 497

为什么有的团队严禁使用Lombok?

一、介绍 Java,作为一款非常热门的编程语言,尽管它有着非常丰富的语言特性,完全面向对象编程,编程高度规范化,但是也有一个最受大家诟病的一个缺点:啰嗦,尤其是当你开发了很多年之后,你会明显的感受到,相比动态语言,java 定义变量之前,要先创建类,然后定义变量类型,每个类要写很多的get/set/toString/hashCode/equals等等方法。 尤其是当一个实体类,高达几十个变量时,写完get、set方法之后,一个实体类的长度快接近一千行。 为了避免写这些“罗嗦”的方法,很多程序员一直在寻觅着

Monsterof的博客 3141

多标签图像分类:标签依赖关系建模的最新论文解读与实战应用

多标签图像分类:标签依赖关系建模的最新论文解读与实战应用 ,人工智能,计算机视觉,大模型,AI,本文解读了最新相关论文,包括基于图神经网络(GCN)的ML-GCN方法,通过构建标签相关矩阵建模依赖关系;区域潜在语义依赖的RLSD模型,定位关键区域并利用RNN建模语义依赖;以及语义图表示学习的SSGRL框架,结合语义解耦与交互模块。通过实战应用,展示了基于PyTorch的ML-GCN模型实现,包括图像特征提取、标签依赖建模及训练评估流程,为多标签图像分类提供了有效解决方案。

不踩坑,不知道坑有多深;不总结,踩过的坑白踩。 18万+

新来的老大说,“公司以后禁止使用Lombok,面试分享一次成功的经历

当你的源代码中使用了 Lombok,恰好你的代码又被其他的人所使用,那么依赖你代码的人,也必须安装 Lombok 插件 (不管他们喜不喜欢),同时还要花费时间去了解 Lombok 注解的使用情况,如果不那么做,代码将无法正常运行。我的反驳:你装不装Lombok 插件不是你喜不喜欢,不是由你个人意愿决定的,这是工作,公司要求怎么做就要怎么做,这是规定。Lombok是一个非常简单的知识点,十分钟就能上手使用,你却抱怨要花费时间学习,作为程序员不是无时无刻都在学习吗,你有这种抱怨只能你放弃程序员这个工作吧!

m0_61331407的博客 731

使用 MATLAB/Simulink 对基于同步发电机的双机系统进行建模

双机系统(Two-Machine System)是电力系统中用于研究动态稳定性和控制策略的一个典型模型。它由两台同步发电机通过输电网络相互连接,模拟实际电网中的互联操作。当发生短路故障时,系统的暂态稳定性会受到挑战,可能导致发电机失步或电压崩溃。本教程将带你使用 MATLAB/Simulink 对基于同步发电机的双机系统进行建模,并对其在短路故障条件下的暂态稳定性进行仿真和分析。

amy_mhd的博客 217

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

短视频app源码,实现幂等设计的重要方式

短视频app源码,实现幂等设计的重要方式。

云豹网络科技 602

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

Lombok插件扭曲的审美,得不偿失!劝大家放弃使用lombok插件

为什么很多公司禁止使用Lombok?首先说使用Lombok有哪些隐患: JDK版本问题 胁迫使用 可读性差 代码耦合度增加 得不偿失 不得不承认,Lombok是一个很不错的java库,可以在编程时少些代码并耍耍酷,简单的几个注解可以干掉一大片模板代码。但是所有的源代码很多时候是用来阅读的,只有很少时间用来执行。 在没有用Lombok之前,我们的源代码看起来是这样的: public class User { String data; String name; public User

EatingSoilLang 531

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

新来个技术总监,禁止我们使用Lombok!

我有个学弟,在一家小型互联网公司做Java后端开发,最近他们公司新来了一个技术总监,这位技术总监对技术细节很看重,一来公司之后就推出了很多"政策",比如定义了很多开发规范、日志规范、甚至是要求大家统一使用某一款IDE。 但是这些都不是我这个学弟和我吐槽的点,他真正和我吐槽的是,他很不能理解,这位新来的技术总监竟然禁止公司内部所有开发使用Lombok。但是又没给出十分明确的,可以让人信服的理由。 于...

HollisChuang's Blog 15万+

我要狠狠的反驳“公司禁止使用 Lombok ”的观点!

点击上方“芋道源码”,选择“设为星标”管她前浪,还是后浪?能浪的浪,才是好浪!每天 8:55 更新文章,每天掉亿点点头发...源码精品专栏原创 | Java 2020 超神之路,很肝~中...

芋艿V 580
上一篇: 你知道线程池创建多少线程比较合理吗?
下一篇: 面试官:你分析过 Spring MVC 源码吗?不会就算了~
公众号-芋道源码
博客等级 码龄10年 1634粉丝 377原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值