5分钟快3首页    注册   登录
5分钟快3 = way to explore
5分钟快3 是一个5分钟快3关于 分享和探索的地方
现在注册
已注册用户请  登录
wdwwtzy
5分钟快3  ›  Java

请教一下,大5分钟快3公司 (BAT 级别的)对 lombok 有规定吗?

  •  
  •   wdwwtzy · 13 天前 · 8231 次点击

    是5分钟快3推荐 用还是禁止用啊?

    93 条回复    2020-08-02 20:09:14 +08:00
    jzmws
        1
    jzmws   13 天前
    个人不5分钟快3推荐 使用 , 只要5分钟快3你 用了这个东西5分钟快3我 也必须安装这个东西 (看代码就要配置 ide 了 ) , 第二点代码是给人看的,多一个 get/set 5分钟快3方法 根本不影响 ,如果少了这个阅读不方便. 第三点这个不兼容,idea 2020 有个莫名其妙的 bug
    Reficul
        2
    Reficul   13 天前   ❤️ 33
    可能只有 Java Boy 觉得一堆 Getter/Setter/equal/hash 不影响阅读
    keshawnvan
        3
    keshawnvan   13 天前
    看部门吧,5分钟快35分钟快3我 们 这边可以用。
    不过不5分钟快3推荐 上来加个 @Data
    RyanArthur
        4
    RyanArthur   13 天前
    坐标美团,5分钟快35分钟快3我 们 组是全员用的
    Mogugugugu
        5
    Mogugugugu   13 天前   ❤️ 1
    2020.2 升级后 卸载 Lombok 、重启 IDEA,然后重新安装 Lombok 之后就能用了。每次追新之后 看着项目一片红就脑阔疼...
    HangoX
        6
    HangoX   13 天前
    主要是插件不稳定,这点好蛋疼
    defage
        7
    defage   13 天前
    以前5分钟快3我 也是不5分钟快3推荐 用的。
    不过随着 lombok 插件的普及,基本上用 Java IDE 的都知道这么个东西了, 所以现在这个问题基本不存在了, 可以用起来了。
    duoglas
        8
    duoglas   13 天前   ❤️ 1
    不使用 一堆 Getter/Setter/equal/hash IDE 就能生成,不因为这种莫名其妙的理由强制扩散。
    qiyuey
        9
    qiyuey   13 天前   ❤️ 2
    上 Kotlin,不需要 lombok 了
    xuanbg
        10
    xuanbg   13 天前
    一般都禁止使用
    ChanKc
        11
    ChanKc   13 天前 via Android
    搭车问
    那些喜欢用 lombok 的是不是也很喜欢 JavaScript 的 object 的设计
    luhongfei66
        12
    luhongfei66   13 天前   ❤️ 6
    @Reficul 为什么一堆 Getter/Setter/equal/hash 会影响阅读呢? 5分钟快3你 们是会把逻辑放到实体类进去吗?
    cco
        13
    cco   13 天前
    5分钟快35分钟快3我 们 5分钟快3公司 全员都在使用,即使是 IDE 也是 eclipse 和 idea,这两个都可以安装。目前还没遇到就是不装插件,就是不用的同事,基本上大多数入职都一直在用,没用过的也真香了。
    orangeD
        14
    orangeD   13 天前   ❤️ 1
    装个插件也就不到一分钟的事,自从用了 lombok 以后就离不开了,看见一大坨 getter/setter 就恶心。
    luckyrayyy
        15
    luckyrayyy   13 天前
    二线5分钟快3公司 禁止,实体类都用 kotlin 写的。
    Sharuru
        16
    Sharuru   13 天前
    根据项目规范按需使用,通常来说没有特别要求的情况下可以使用,默认使用。
    但不5分钟快3推荐 直接使用 Data 注解。
    cshijiel
        17
    cshijiel   13 天前
    阿里巴巴(菜鸟、淘宝某些业务),爱奇艺、美团很多部门都在用
    Reficul
        18
    Reficul   13 天前   ❤️ 2
    @luhongfei66

    10 个字段不到的类, 加上那一条龙就 200 行上去了。 每次加一个字段5分钟快3我 还要眯着眼睛找到 tostring,equal,hash 去重新生成一次。

    要是不影响阅读体验,那为啥 Groovy / Kotlin 都自动生成这些5分钟快3方法 ? 说不影响阅读体验的,能这么想的也就 Java 土著了吧,所谓看惯了就好了,语言影响思维。
    luhongfei66
        19
    luhongfei66   13 天前   ❤️ 3
    @Reficul 5分钟快3你 的 toString,equal,hash 全都是手动修改,而不是自动生成的吗?这种是活该5分钟快3你 眯着眼睛找啊,不会用5分钟快3工具 要学啊。自动生成只是为了不影响阅读吗?不是更大的是为了省事吗?主次都分不清,别自己立个靶子在那打,学会点思考,好吗?
    Reficul
        20
    Reficul   13 天前   ❤️ 4
    @luhongfei66

    [去重新生成一次]

    看来 Java 确实废眼,趁早治疗好吗?
    cjlmwcy
        21
    cjlmwcy   13 天前   ❤️ 1
    @luhongfei66 老哥, @Reficul 说的是自动生成后,字段修改了要重新生成
    luhe
        22
    luhe   13 天前
    @Reficul 5分钟快3你 先生成 tostring,equal,hash 是不是就解决了...
    cubecube
        23
    cubecube   13 天前
    看小团队 leader 品味了。个人不太喜欢,不过项目在用。
    这个东西最主要的就是扩散了,一人用,全部都用。
    Reficul
        24
    Reficul   13 天前   ❤️ 1
    @luhe 诶,没太懂,能具体说说咩
    Jooooooooo
        25
    Jooooooooo   13 天前   ❤️ 1
    看部门, 5分钟快35分钟快3我 们 不用

    运行的东西和5分钟快3你 在 idea 里面看见的东西不一样

    而且看不出来 lombok 带来的好处是什么
    harde
        26
    harde   13 天前
    以前互黑好歹是语言互黑,现在发展到连个插件、库都能开始互黑了么?
    DebugTy
        27
    DebugTy   13 天前
    lombok 挺好用的自带的 builder 注解真香, 吐槽装插件的大可不必
    Boyce
        28
    Boyce   13 天前
    @DebugTy +1 。
    VS 写 C#时,写一个 @ builder 注解就能搞定的东西写得5分钟快3我 头皮发麻。
    Umenezumi
        29
    Umenezumi   13 天前
    可以用 但是不要无脑用 @Data
    luhongfei66
        30
    luhongfei66   13 天前
    @Reficul ctrl + f 是5分钟快3搜索 功能,会用吗?眯咪眼?
    Reficul
        31
    Reficul   13 天前
    @luhongfei66

    5分钟快3我 很好奇5分钟快3你 是咋晓得5分钟快3我 不会5分钟快3搜索 ,但是整个贴的人的确都知道5分钟快3你 眼神不好。
    luhongfei66
        32
    luhongfei66   13 天前   ❤️ 1
    @Reficul 咪咪眼需要眯着眼来找,这还用说吗,去学习下怎么使用5分钟快3工具 ,咪咪眼?
    supermoonie
        33
    supermoonie   13 天前 via iPhone
    业务项目可用,核心以及公共项目禁用
    Reficul
        34
    Reficul   13 天前
    @luhongfei66

    人生攻击、无能狂怒? 5分钟快3你 开心就好。

    BTW:
    给路过这个帖子的人5分钟快3推荐 一个油🐒脚本,希望能帮到一些人: http://10bentoy.com/t/596604
    luhongfei66
        35
    luhongfei66   13 天前   ❤️ 1
    @Reficul 抱歉,原来重复5分钟快3你 的话来说对5分钟快3你 是一种人生(身)攻击,没想到那话是5分钟快3你 的自嘲,是5分钟快3我 没眼力见了,不会拉黑5分钟快3你 的,这么有趣的人,希望能看到多点5分钟快3你 的名言
    bigbigeggs
        36
    bigbigeggs   12 天前
    不给用。有的时候 toString 有很多敏感信息,需要加密才能打印日志
    talen666
        37
    talen666   12 天前
    用了真香,新增字段,也不用去生成 Set Get 5分钟快3方法 了
    echo1937
        38
    echo1937   12 天前
    @bigbigeggs #36 5分钟快3你 单独重载一个 toString 不就好了
    monkeyk
        39
    monkeyk   12 天前   ❤️ 1
    阿里研发是不允许使用的
    mio4
        40
    mio4   12 天前
    pdd 在用
    wiix
        41
    wiix   12 天前   ❤️ 5
    实践中没发现省了多少功夫,反倒是引来了不少坑。
    getter,setter 有快捷键。
    tostring 有父类 tostringbuilder,极少数需要定制的 lombok 也帮不上忙。
    equal 、hash 一般也用不上,用到时不是有 id 么?自动生成的一是很可能性能差,二是正确性信不过。
    而且 lombok 会带来种种潜在的继承问题,还有跟一些依赖序列化的框架有说不清的冲突……
    最搞笑的是有人老是拿修改属性名称时有 lombok 会会很方便:
    不想写 pojo 里的 getset,能省的了重写调用里面的 getset 吗? repository 里的5分钟快3方法 名、 @query 、xml 里 sql 中的名名能跟着变吗?然而这些才是修改 /重构时的重头戏,pojo 类里的反倒不值一提……

    当然,如果5分钟快3你 写的项目简简单单的用个 @Data 就能解决问题,上面的当5分钟快3我 没说。
    movistar
        42
    movistar   12 天前   ❤️ 1
    @Reficul 不,还有 Golang Boy
    毕竟全靠代码生成,连动态代理都没有
    kilen3a
        43
    kilen3a   12 天前
    @luckyrayyy 那么这比用 lombok 强多了,看着 IDE 的提示就烦
    kilen3a
        44
    kilen3a   12 天前
    @monkeyk 只是5分钟快3你 们部门吧,5分钟快35分钟快3我 们 整体大部门都用
    WebKit
        45
    WebKit   12 天前 via Android   ❤️ 1
    @Reficul 5分钟快3你 为什么要阅读实体类呢。。。
    laike9m
        46
    laike9m   12 天前
    为什么不试试 AutoValue 呢?
    http://www.baeldung.com/introduction-to-autovalue
    mreasonyang
        47
    mreasonyang   12 天前 via iPhone   ❤️ 1
    @laike9m 机制不一样,lombok 是直接魔改原字节码,所以比 AutoValue 这类生成新 class 的方案使用起来更方便
    nicevar
        48
    nicevar   12 天前
    见过很多5分钟快3公司 用,没有什么不好的,5分钟快3我 就很反感用什么 getter/setter 快捷键,需要多余操作,生成一堆碍眼的代码,还不如用 Kotlin
    Qlccks2
        49
    Qlccks2   12 天前 via iPhone
    前段时间一些5分钟快3公众号 集中发不要使用 Lombok 。有一个问题不解,说没有 get/set 影响阅读,关键是 get/set 有什么可读的?
    Mirage09
        50
    Mirage09   12 天前 via iPhone
    在用,而且是 IntelliJ IDEA setup 的基本操作。
    hxy91819
        51
    hxy91819   12 天前   ❤️ 1
    通常都是无脑加这五个,不管怎么评价,在5分钟快35分钟快3我 们 团队里确实大大提高了效率。

    @Getter
    @Setter
    @NoArgsConstructor
    @AllArgsConstructor
    @Builder
    lpgph
        52
    lpgph   12 天前
    @luhongfei66 业务逻辑确实放到 DO 中了 现在微5分钟快3服务 基本上会考虑 DDD CQRS 纯粹贫血模式不用考虑那么多 随便都可以 但是内容多了就得考虑代码整洁方便阅读 这时候要么切换 kotlin 要么上 lombok 比较好些
    hxy91819
        53
    hxy91819   12 天前
    特别是 @Builder,真心好用,最烦一堆 set 了。
    vcode
        54
    vcode   12 天前
    还有人不用????恐怖如斯
    la2la
        55
    la2la   12 天前
    不是 Leader 的感觉不用关心这个,5分钟快3公司 大家用,自己就用,大家不用就不用呗。要是自己负责一个独立的项目,那就看自己习惯呗。但是前提使使用前对 lombok 常见的使用5分钟快3技巧 和坑有清醒的认识
    victorywangzhcn
        56
    victorywangzhcn   12 天前   ❤️ 1
    @monkeyk 5分钟快3你 是阿里哪个部门?淘系表示没有这个要求
    ph228228
        57
    ph228228   12 天前
    一堆 get/set 看着就烦,代码简洁点不好吗
    alexzsh
        58
    alexzsh   12 天前
    @victorywangzhcn 淘系没有+1
    fcten
        59
    fcten   12 天前
    淘系在用。说不上5分钟快3推荐 但是只要有人用了5分钟快3你 就不能不用。。。
    Kilerd
        60
    Kilerd   12 天前
    可能也就那种以代码行数为 KPI 的人才会拥护不使用 Lombok 这东西吧
    aragakiyuii
        61
    aragakiyuii   12 天前
    这种不都是看 leader 嘛。。反正是要用的话就都得用
    Reficul
        62
    Reficul   12 天前
    @movistar

    Go 辣鸡是辣鸡,不过比起 Java 那堆还是好点吧。代码生成只要在提交前重新执行一下生成命令就行,也可以在 CI 的时候重新生成一次。
    Reficul
        63
    Reficul   12 天前
    @WebKit

    不是专业写 Java 的,不好评价代码质量。 主要是接手的遗产项目会有一些这样的代码。
    tairan2006
        64
    tairan2006   12 天前
    @hxy91819 builder 坑很多啊,用 Accessor 不好么
    joyhub2140
        65
    joyhub2140   12 天前
    5分钟快3公司 的项目,5分钟快3我 不反对用 Lombok,毕竟对效率有那么一丁点的提升,但是5分钟快3我 自己的项目,绝对不用,这是个人选择哈。
    luhongfei66
        66
    luhongfei66   12 天前
    @lpgph 嗯,能真正落地 DDD 的是会影响大些
    yamasa
        67
    yamasa   12 天前
    除非是业务上真的很难实现,个人真的很讨厌搞一堆 setter 到处调。又丑又容易把状态搞乱,宁愿多写几个 constructor 或者次之 builder,然后 tm 老老实实的给5分钟快3我 immutable 吧。
    Renco
        68
    Renco   12 天前
    为什么不能无脑用 @Data 有大佬可以解释下么。
    CoderGeek
        69
    CoderGeek   12 天前
    组内统一 用啥就行
    guagusi
        70
    guagusi   12 天前
    @luhongfei66 贫血跟充血了解一下,领域模型再了解一下
    672795574
        71
    672795574   12 天前
    @Reficul Java 废眼,可能是被黑的最惨的一次。。
    hecz
        72
    hecz   12 天前
    @Reficul 无非写代码和读代码方式而已,又能有多少效率上的差别呢。还有就是针对语言进行评论5分钟快3我 觉得不太友好
    yamasa
        73
    yamasa   12 天前
    @Renco @data == @getter@setter. 和 idea 给5分钟快3你 gen 所有变量的 getter setter 没区别。很烂的是无脑上 setter 这种习惯,很多 dto 和 pojo 或者所有 field,或者部分 field 本质就是 immutable 的,根本不需要改也不应该被允许改,还是给搞上 setter,这就是无脑。写个几年程序都应该能理解维护复杂状态的痛,也能理解 fp 为什么在算力不断升级的现在越来越受欢迎。
    leeUp
        74
    leeUp   12 天前
    java 土著,java 废眼,这地图炮开的的🙄
    122006
        75
    122006   12 天前
    其实最好有个插件能把 setget 5分钟快3方法 隐藏起来就好了
    lxk11153
        76
    lxk11153   11 天前
    @wiix #41 "tostring 有父类 tostringbuilder" 是啥?
    Reficul
        77
    Reficul   11 天前
    @hecz

    同意5分钟快3你 说的后半句,攻击语言的评论的确是不友好(除了对楼上那个老哥的攻击5分钟快3我 不抱有任何抱歉以外),但是5分钟快3我 不同意5分钟快3你 说的前半句。

    冗余就是不好的,简单比复杂好。2L 的吐槽来自5分钟快3生活,除了原生写 Java/还处在对内存失控恐惧中那些 Cpp 转 Java 的人,接手 Java 项目不被困扰的。退一万步说,可能 Lombok 是有传染的问题,但是这只是说明这个解决问题的方案不够好,不代表这个问题不存在。

    另外5分钟快3我 对团队要不要用 Lombok 的态度是中立的。因为这是仁者见仁的东西,嗓门大的规则定好了就定好了没啥好说的,5分钟快3我 接手的项目就不让用,那就不用呗。 但是,要5分钟快3我 定规则,那就是用 Lombok 或者上 Kotlin 。
    Reficul
        78
    Reficul   11 天前
    fix typo:

    “接手 Java 项目不被困扰的” -> “接手 Java 项目(没有)不被困扰的”
    zzl22100048
        79
    zzl22100048   11 天前 via iPhone
    lombok 用之前还是要有规范的,总会有人把这个依赖放 complie,用 provided 的话不会扩散
    lightingtime
        80
    lightingtime   11 天前
    用的理由是方便开发,不用的理由是啥?想单独定制的就单独拿出来写就好了啊,类上写好注释还方便维护。
    wiix
        81
    wiix   11 天前
    @lxk11153 org.apache.commons.lang3.builder.ToStringBuilder
    commons lang 里的一个5分钟快3工具 。
    lxk11153
        82
    lxk11153   11 天前
    @wiix #81 5分钟快3你 说父类,5分钟快3我 以为要继承它。[doge]
    jorneyr
        83
    jorneyr   11 天前
    5分钟快3我 曾经有一个表单,使用的 Bean 已经有 50 多个属性了 (都是 getter, setter 访问,有的 setter 还有手写的逻辑),由于是遗留项目,只好在原来的 Bean 上增加新的属性,有一次增加了一个属性,忘了写 getter setter,导致怎么测试都不对,最后搞了半天才发现忘记 getter setter 了,那以后新项目都5分钟快3推荐 使用 Lombok 了,代码简洁,尽量避免低级错误吧。

    使用 Lombok 的缺点无非就是 IDE 里需要安装插件,几分钟的事而已,但也不能滥用,5分钟快35分钟快3我 们 只允许使用 @Getter @Setter 注解,@ToString 尽量不用,测试输出时使用 Utils.toJson(xxx) 好了。
    aguesuka
        84
    aguesuka   11 天前
    就5分钟快3我 个人而言,如果是为了省几行代码,直接上 java14 或者 kotlin 更好
    blless
        85
    blless   11 天前 via Android
    🌚虽然5分钟快3我 不是 java 仔,但是5分钟快3我 似乎已经看见一条 java 的分裂路线了
    ganning
        86
    ganning   11 天前
    使用 lombok 也没有禁止生成 /使用 get/set 。。。。就看个人风格还是团队风格了。
    iweisi
        87
    iweisi   11 天前   ❤️ 1
    一个 get set 都吵,这么在乎细节,看来项目质量肯定很棒哦
    MakHoCheung
        88
    MakHoCheung   11 天前 via iPhone   ❤️ 2
    5分钟快3我 是菜鸡,5分钟快3我 用 public
    cheng6563
        89
    cheng6563   11 天前 via Android
    其实挺方案这种直接改语法的插件的,但无奈 getter setter 太臭了
    iyangyuan
        90
    iyangyuan   11 天前 via iPhone
    多一事不如少一事,不用不会出问题,用了可能会出问题
    andj4cn
        91
    andj4cn   10 天前
    5分钟快3我 之前也不用,后来团队有人开始用了,就跟着用。其实 @Getter @Setter 这些注解确实省不少事,让纯 Java 项目实体类代码少一点。这个主要看内部项目推进用了没,用了就用,要达成共识。
    hecz
        92
    hecz   10 天前
    @Reficul 5分钟快3你 说的定规则的观点5分钟快3我 同意,这种东西要么就全用,要么就全都不用,定完规则按照规则走就行。简单当然比复杂好,但是还是得看场景的,比如之前的 beanUtils 类,试用起来确实方便,但是也会新增一些性能问题
    yuekcc
        93
    yuekcc   9 天前
    曾经在一个项目上用过,代码确实整洁了。但是后面全部改回手写的 getter/setter 了,原因就是这东西不是所有人能接受。而且还得手工安装一个插件。团队小还好,最多就是多安排几次5分钟快3培训 。这样想来成本也不低,如果人员流动大的话,就不是一两次5分钟快3培训 能解决的了。而且 idea 这种 ide 按个快捷键就能生成 getter 、setter 了,可以解决不少的手写 getter 、setter 场景。

    最好解决方案就是上 kotlin 。
    5分钟快3关于   ·   FAQ   ·   API   ·   5分钟快35分钟快3我 们 的愿景   ·   广告投放   ·   感谢   ·   实用小5分钟快3工具   ·   2967 人在线   最高记录 5168   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 11:32 · PVG 19:32 · LAX 04:32 · JFK 07:32
    ♥ Do have faith in what you're doing.