Lombok 到底应不应该使用?

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

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

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

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

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

12860 次点击
所在节点    Java
80 条回复
rizon
2019-05-08 20:34:45 +08:00
@Sendya #9 原来 spring 构造函数注入的方式,不是必须要在构造方法上加 Autowired 的注解啊。。。。被骗了好久。。。。。
rizon
2019-05-08 21:10:42 +08:00
@smeraldo #27 就像 field inject 一样,会产生坏味道?怎么个道理??
x66
2019-05-08 21:14:50 +08:00
@rizon #41 从 Spring 4.3 开始不再需要
WispZhan
2019-05-08 21:19:58 +08:00
这玩意有坑,但是好用。

不过想用其他 JVM 混编就不要用了,这玩意不是用的 APT ( Annotation Processing Tool ),而是 AST 无法通过简单的调整编译顺序让其他 JVM 语言找到 Lombok 生成的代码。
micean
2019-05-08 21:30:44 +08:00
一直用着,在写内部类的时候舒服多了
Ahaochan
2019-05-08 21:52:05 +08:00
一点微小的拙见
初探 Lombok 并拒绝它 https://blog.ahao.moe/posts/learn_Lombok_and_reject_it.html
拒绝被强 X,也不强 X 别人 (
799635347
2019-05-08 22:24:16 +08:00
使用过程中除了 @Builder 继承会有些问题,其他表示很 nice
petercui
2019-05-08 22:27:56 +08:00
@Ahaochan gradle 和 maven 都有 lombok 插件的。
wdlth
2019-05-08 22:37:23 +08:00
Lombok 与 apt 的兼容性有待提高
smeraldo
2019-05-08 22:37:39 +08:00
@rizon #42
众所周知, field injection 很容易弄十几个依赖, 用 constructor 的就会有个很长的参数, 更容易引起注意.
如果用 lombok, 反而又把这个冗长的构造方法藏起来了, 巧妙地"隐藏"了问题
orangeD
2019-05-08 22:45:08 +08:00
用 lombok 一时爽,一直用一直爽。
Narcissu5
2019-05-08 22:53:44 +08:00
lomok 本身就是 java 演进太慢的问题,希望能像前端的各种 slim 一样只是一种暂时的解决方案
yuekcc
2019-05-09 01:18:09 +08:00
用过一下。全组人必须得一起用。

lombok 最大的问题是需要结合 ide 插件使用,虽然 idea 配置不困难,不过组内一些年轻的“老同志”接受不了这风骚的操作。最后只好放弃了。

果断 kotlin。
SuperMild
2019-05-09 01:48:07 +08:00
自从有了 Kotlin ……
billlee
2019-05-09 02:23:49 +08:00
@WispZhan #44 有 maven 插件可以让 lombok 生成 generated-sources, 我写过 lombok 和 scala 混合的代码。不过最近已经全面切换到 scala 了。
Cbdy
2019-05-09 06:35:32 +08:00
看 Spring,Spring 用我们就用
CasualYours
2019-05-09 09:10:31 +08:00
我很喜欢用,但确实强 X 了队友。
dif
2019-05-09 09:12:32 +08:00
这东西,少数服从多数,不用也影响不大,用了也没啥坏处。反正我们是建议使用的。
Yuicon
2019-05-09 09:31:39 +08:00
知道但没用过 感觉并没有提高多少效率 反而容易造成分歧 比如没用过的人就不理解队友的代码了
shihty5
2019-05-09 09:34:37 +08:00
Hail Kotlin!

data class MyDataClass(val age: Int, val name:String)

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

https://www.v2ex.com/t/562185

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

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

© 2021 V2EX