天道不一定酬所有勤
但是,天道只酬勤

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

GitHub 17k Star 的Java工程师成神之路,不来了解一下吗!

我有个学弟,在一家小型互联网公司做Java后端开发,最近他们公司新来了一个技术总监,这位技术总监对技术细节很看重,一来公司之后就推出了很多”政策”,比如定义了很多开发规范、日志规范、甚至是要求大家统一使用某一款IDE。

但是这些都不是我这个学弟和我吐槽的点,他真正和我吐槽的是,他很不能理解,这位新来的技术总监竟然禁止公司内部所有开发使用Lombok。但是又没给出十分明确的,可以让人信服的理由。

于是他来找我聊天,问我这个要求到底是否合理。关于这个事情,我认为这位技术总监的出发点是好的,但是做法未免有些极端。

之所以说出发点是好的,是因为使用Lombok确实会带来很多问题,而且我个人在工作中也基本不主动使用。

之所以说不主动使用,那是因为有些同事的代码还是使用了的,所以我也被迫的要安装Lombok的插件。

既然聊到这个话题,就简单说说我的一些看法。

Lombok有什么好处?

Lombok是一款非常实用Java工具,可用来帮助开发人员消除Java的冗长代码,尤其是对于简单的Java对象(POJO)。它通过注释实现这一目的。

如果大家对于Lombok比较了解的话,可以先跳过这一段,直接往后看,如果不是很熟悉的话,可以简单了解一下。

想在项目中使用Lombok,需要三个步骤:

一、IDE中安装Lombok插件

目前Lombok支持多种IDE,其中包括主流的Eclips、Intellji IDEA、Myeclipse等都是支持的。

在IDEA中安装方式如下:

-w400

二、导入相关依赖

Lombok 支持使用多重构建工具进行导入依赖,目前主要支持maven、gardle、ant等均支持。

如使用maven导入方式如下:

<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
    <version>1.18.12</version>
    <scope>provided</scope>
</dependency>

三、代码中使用注解

Lombok精简代码的方式主要是通过注解来实现,其中常用的有@Data、@Getter/@Setter、@Builder、@NonNull等。

如使用@Data注解,即可简单的定义一个Java Bean:

import lombok.Data;
@Data
public class Menu {
    private String shopId;
    private String skuMenuId;
    private String skuName;
}

使用@Data注解在类上,相当于同时使用了@ToString、@EqualsAndHashCode、@Getter、@Setter和@RequiredArgsConstrutor这些注解,对于POJO类十分有用。

即自动帮忙给例子中的Menu类中定义了toString、Getter、Setter等方法。

通过上面的例子,大家可以发现,我们是好用@Data注解大大减少了代码量,使代码非常简洁。这也是很多开发者热衷于使用Lombok的主要原因。

另外,关于Lombok的使用,不同人有不同的看法,因为很多人都使用过Lombok,对于他的优点都比较了解,所以接下来我们重点说一下Lombok的使用会带来哪些问题。

Lombok有什么坏处?

Hollis为了防爬虫以及未经授权的恶意转载,此处内容已被作者隐藏,请输入验证码查看内容
验证码:
请关注本站微信公众号,回复“验证码”,获取验证码。在微信里搜索“Hollis”或者“hollischuang”或者微信扫描右侧二维码都可以关注本站微信公众号。

(全文完)

扫描二维码,关注作者微信公众号
赞(0)
如未加特殊说明,此网站文章均为原创,转载必须注明出处。HollisChuang's Blog » 新来个技术总监,禁止我们使用Lombok!
分享到: 更多 (0)

评论 4

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
  1. #1

    我不做java开发,但是看了你说的使用Lombok的优缺点以后,我不尺中立态度,我支持你们的项目总监

    karel_eof9个月前 (02-19)回复
  2. #2

    更重要的是,如果我们定义的一个jar包中使用了Lombok,那么就要求所有依赖这个jar包的所有应用都必须安装插件,这种侵入性是很高的。

    错了吧,都打成jar了,并不会要求依赖该jar的应用安装lombok

    dd9个月前 (03-14)回复
  3. #3

    我一直在使用lombok, 以上这些缺点我认为80%是牵强的, 我认可的一个缺点是版本问题, 因为不同版本生成方法的规则可能有差异导致升级被卡住 这是有的, 其他的 都是使用不规范造成的, 比如破坏了封装性, 对于这种情况, 为啥不使用其他注解如 Getter, 不要直接使用Data注解? 还有equals等这些生成的方法, 如果掉进坑里 只能怪自己没了解之前就使用, 而不可以将锅甩给lombok 任何工具都是有利有弊的 不可能为任何任何场景考虑到, 如果真有 那我觉得 这种程序员应该早就失业了吧

    eugene8个月前 (03-26)回复
  4. #4

    可以不用@Data 用@Getter @Setter 呀

    LesileCheung7个月前 (04-17)回复

HollisChuang's Blog

联系我关于我