Lombok 到底应不应该使用?

2019-05-08 14:01:00 +08:00
 cmower

之前写了一篇《干啥呢,Lombok 》,读者反响还不错。

有一些批评的声音:使用 Lombok 等于强 X 了你的队友,他们也必须使用,否则代码就编译不通过。

但我自己的体验是,省去 getter/setter 似乎真的很省心。

V 站的朋友们,你们觉得呢?

13753 次点击
所在节点    Java
80 条回复
bduqw
2019-05-09 09:43:02 +08:00
kotlin data class + 1
跟 Java 无缝兼容,idea 也自带支持,写爬虫很舒服
zjengjie
2019-05-09 10:03:54 +08:00
@Ahaochan 你那文章写得挺没道理的。
1.编译成 jar 包后引入是不需要依赖 lombok 的,引入源码包才需要。
2.你把那个 setter 方法写在类里面会自动覆盖 lombok 生成的 setter,完全不会对功能造成影响。
tppppp
2019-05-09 10:42:12 +08:00
lombok 遇到过坑 版本太新会 require jdk9+
thinkloki
2019-05-09 10:47:16 +08:00
@SuperMild 意思是写 bean 的时候用 kotlin 吗?还是整个服务用 kotlin 来写?
rizon
2019-05-09 11:10:53 +08:00
@smeraldo #50 好的吧,但是依赖一大堆 这种是业务场景啊,也没啥解决办法吧?
rizon
2019-05-09 11:12:29 +08:00
@SuperMild @thinkloki #64
我也挺好奇的,有没有混着 kotlin 写 java 的?我记得以前看到过一些示例来着,忘了在哪了。如果有相关的示例可以看看就好了。
CuChulainn
2019-05-09 11:19:27 +08:00
kotlin data class 了解一下
notreami
2019-05-09 12:36:06 +08:00
这时候就突然觉得,java 生态开始分裂了。
大家盯着 lombok 肉体强 X,而忽略了 kotlin、scala 这些携生态的方式对 java 的肉体和思想的双重羞辱嘛?
mreasonyang
2019-05-09 13:42:41 +08:00
实际使用中,个人感觉 lombok 最麻烦的就是很难处理在 maven 项目中和 aspectj 共存的问题
EastLord
2019-05-09 13:56:19 +08:00
现在 ide 能够自动生成 get/set 方法 我觉得没必要用
SaintDan
2019-05-09 16:00:22 +08:00
如果团队能协商使用的话,当然用了更好
主要是 lombok 不仅仅是 get / set 还有很多便捷的功能
leonard916
2019-05-09 17:42:34 +08:00
我個人是很喜歡 lombok 的 至於強沒強 X 隊友 我並不關心
反正誰不想省事
vela
2019-05-09 17:50:50 +08:00
lombok 在解决 Java 语言冗余方面做的很好,但是不够彻底。比较起来,我会倾向:
使用 Kotlin 或者混合使用 Kotlin 来解决语言层面冗余的问题。

lombok 目前实现也有一些 trick 和 hack,如果有更好的实现也许我会给 lombok 加分。另外 lombok 带来的一些隐性的成本是一般开发者用脚投票时不太容易看到的(毕竟短时间看省事儿好用了),团队决策者是需要考虑这些的。我个人的看法是,观望并等待更好的解决方案,或者等待 lombok 更加成熟一些再进行推广(但是现阶段我不会在团队中严格禁止)。

至于大家提到的 IDE 配置问题,我觉得完全不是一个问题和障碍,Java 目前已经是重度依赖 IDE 的语言了,这点儿配置成本如果都无法接受,听起来很滑稽。
cubecube
2019-05-09 20:37:19 +08:00
如果新团队可以引入,既有项目的话,没太大必要,除了让你自己觉得这很爽只在,潜在收益不太大
yuankui
2019-05-09 20:46:04 +08:00
其实就是 Java 没做好,lombok 擦了屁股而已。

那些拉了屎不擦屁股的,难道不难受吗?
atonku
2019-05-10 08:57:28 +08:00
所以我们都在摸鱼
cmower
2019-05-10 10:48:57 +08:00
@asdf17128
@waising
@boywang004
@SaintDan
@CuChulainn
@bduqw
@shihty5
@CasualYours
@SuperMild
@yuekcc
@anzhongyu
@EmdeBoas
@Le4fun

看来褒贬不一,不过 kotlin 好像都很喜欢。
cmower
2019-05-10 10:49:32 +08:00
linvaux
2019-05-21 08:26:10 +08:00
无所谓,爱用不用,不用就去手写,屁大点事儿也要讨论半天。
nkduqi
2019-05-21 13:26:09 +08:00
基本上会用,但是要注意其中的一些坑,别让团队踩上了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://ex.noerr.eu.org/t/562185

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX