V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
brucefu
V2EX  ›  问与答

公司不让用 Lombok,这么反人类,该怎么说服领导。二线互联网公司

  •  
  •   brucefu · 2019-11-28 18:21:07 +08:00 · 7839 次点击
    这是一个创建于 1856 天前的主题,其中的信息可能已经有所发展或是发生改变。
    71 条回复    2019-12-02 09:15:14 +08:00
    micean
        1
    micean  
       2019-11-28 18:30:19 +08:00   ❤️ 3
    不如说服自己不用
    HuHui
        2
    HuHui  
       2019-11-28 18:30:51 +08:00
    工资给太多了吗
    lockelee
        3
    lockelee  
       2019-11-28 18:34:19 +08:00 via iPhone   ❤️ 3
    公司领导还管这个,居然懂技术呢
    lbp0200
        4
    lbp0200  
       2019-11-28 18:43:57 +08:00
    面向工资编程?不用 Lombok:逃离 Java
    peyppicp
        5
    peyppicp  
       2019-11-28 18:45:02 +08:00   ❤️ 2
    用 public 修饰🐶
    springz
        6
    springz  
       2019-11-28 18:48:53 +08:00   ❤️ 1
    上 Kotlin
    kkkkkrua
        7
    kkkkkrua  
       2019-11-28 18:50:12 +08:00 via iPhone
    idea 的生成也可以吧,差不多的
    ysn2233
        8
    ysn2233  
       2019-11-28 18:51:57 +08:00
    不如用 Public
    x66
        9
    x66  
       2019-11-28 18:57:42 +08:00
    那就用 public
    lhx2008
        10
    lhx2008  
       2019-11-28 19:01:50 +08:00 via Android
    IDEA 快速插入了解一下
    wmhx
        11
    wmhx  
       2019-11-28 19:07:11 +08:00   ❤️ 5
    这种魔法工具, 在团队中还是审慎使用 ,不是每个人都能完全理解并正确使用的, 而意外的 bug 就更不好定位了, 所以你听领导的没错.
    LPeJuN6lLsS9
        12
    LPeJuN6lLsS9  
       2019-11-28 19:14:48 +08:00
    没有 lombok 我要死了。public+1
    shenyuanlaolarou
        13
    shenyuanlaolarou  
       2019-11-28 19:19:19 +08:00 via iPhone
    这种东西你用了 团队里面做同一个项目的人都得用,或者说至少也要装一个,这对他们也不公平吧。
    hyrepo
        14
    hyrepo  
       2019-11-28 19:31:39 +08:00 via iPhone
    不如先问问为什么不让用?这东西硬伤太大,没有装插件代码拉下来全是红的
    EminemW
        15
    EminemW  
       2019-11-28 19:36:55 +08:00 via iPhone
    选中所有属性 ➡️shift+insert ➡️ getter and setter ☑️
    uxstone
        16
    uxstone  
       2019-11-28 20:39:56 +08:00
    这还算是互联网公司?
    rebounce
        17
    rebounce  
       2019-11-28 20:55:51 +08:00 via Android
    kotlin
    NeinChn
        18
    NeinChn  
       2019-11-28 21:14:51 +08:00   ❤️ 2
    哈哈哈,你知道 lombok 的适用场景,风险,大概实现原理么
    出了问题你能快速解决么,我就不让自己团队的人用 lombok。
    araaaa
        19
    araaaa  
       2019-11-28 21:18:50 +08:00 via iPhone
    ???
    javapythongo
        20
    javapythongo  
       2019-11-28 22:17:09 +08:00 via iPhone
    那用 springboot 吗?不会还是 ssh 吧
    zhazi
        21
    zhazi  
       2019-11-28 22:34:54 +08:00 via Android   ❤️ 6
    @NeinChn 你知道 getter setter 原理,适用场景,风险吗?出了问题你能快速解决么?
    Kahnn
        22
    Kahnn  
       2019-11-28 22:46:17 +08:00
    用了好久没发现有什么风险点,也没听人说因为用 lombok 踩了坑
    uxstone
        23
    uxstone  
       2019-11-28 23:14:37 +08:00   ❤️ 2
    领导的想法是 这 lombok 是个啥?没用过, 出问题 hold 不住咋办,setter/getter 又不是不能用, 垃圾代码多点无所谓, 项目能跑就行,也懒得去学习去了解去装什么 IDE 插件, 反正我是领导,我说了算

    你所能做的 1. 听话 2. 干掉领导,然后推行 lombok
    billlee
        24
    billlee  
       2019-11-28 23:41:37 +08:00
    说说我踩过的坑吧
    1. lombok 依赖了编译器的内部接口,更新 java 大版本的时候会出现兼容问题。现在搜索一下 lombok java 8 应该还能找到相关的问题
    2. 混用( jvm 上的)不同语言的时候配置复杂,效果也不太好
    我工作上的项目需要 java 和 scala 混用,一开始用了 lombok, 后来都重构去掉了
    NeinChn
        25
    NeinChn  
       2019-11-28 23:43:40 +08:00
    @zhazi 我知道啊,也能解决问题,然后你想表达什么
    youngxhui
        26
    youngxhui  
       2019-11-28 23:53:10 +08:00 via Android
    kotlin 吧
    widewing
        27
    widewing  
       2019-11-29 00:10:34 +08:00 via Android
    公司不让我用汇编优化关键业务,这么反人类,怎么说服领导。
    anyele
        28
    anyele  
       2019-11-29 02:41:52 +08:00 via Android
    说实话团队不建议用,个人用用吧
    realkenshinji
        29
    realkenshinji  
       2019-11-29 07:21:31 +08:00 via iPhone
    那就用 kotlin 咯
    noreplay
        30
    noreplay  
       2019-11-29 07:42:50 +08:00 via Android   ❤️ 1
    在团队推行 c #😏😏
    wangxiaoaer
        31
    wangxiaoaer  
       2019-11-29 08:26:11 +08:00 via Android
    @zhazi 别急着发脾气,@NeinChn 说的有道理,不要觉得 lom 只是帮你写了个 getter setter。他还可以帮你写 equals hashcode,而其个类如果有嵌套引用,不做特殊处理,序列化的时候会死循环。

    我当初是看了一下 LM 自动生成的代码才发现的,当然文档可能会提到,但开始用的时候只是想省点事,压制就不觉得有看文档的必要,就掉坑了。
    Rwing
        32
    Rwing  
       2019-11-29 08:28:00 +08:00
    java 语言本身已经这么弱了,还不让用 lombok,不让人写代码了呗?
    tachikomachann
        33
    tachikomachann  
       2019-11-29 08:35:44 +08:00
    不用天也塌不下来。。
    snowydec
        34
    snowydec  
       2019-11-29 08:40:39 +08:00
    lombok 只用 @Getter @Setter 想不出能有什么问题
    passerbytiny
        35
    passerbytiny  
       2019-11-29 08:43:08 +08:00
    @wmhx #10
    @shenyuanlaolarou #12
    @NeinChn #17
    @billlee #23
    大概推测这几位:一,没用过 Spring Boot 或者没真正用过 Spring Boot ;二,没负责过评审别人的代码。
    cwjokaka
        36
    cwjokaka  
       2019-11-29 09:24:19 +08:00
    用 idea 插件生成,效果一样就行
    jipaidian
        37
    jipaidian  
       2019-11-29 09:27:02 +08:00
    这是很简单,谁推行谁培训,这事也不是绝对的对或不对是吧?有人喜欢要用,可以,起码给大家培训一下一起用,要么一起别用。团队项目有统一的规范和行动指南很重要。

    当然以上是个人意见。
    sagaxu
        38
    sagaxu  
       2019-11-29 09:33:28 +08:00 via Android
    @wangxiaoaer 有循环引用的时候,不用 lombok 也会崩,json 序列化达到最大层数限制才会停。


    想推新工具的,还是太年轻,等你老了,也会学不动,也会排斥拒绝新东西,成为你的队员眼中的的守旧老人。勇士杀死了龙,自己却也变成了龙。
    blindpirate
        39
    blindpirate  
       2019-11-29 09:37:21 +08:00   ❤️ 2
    看了一圈没有一个人提到 Lombok 违反了 Java annotation processor 的规定。lombok 用的是 hacky 的方式(编译器的 private API ),不知道的人还是不要无脑吹的好。
    richard1122
        40
    richard1122  
       2019-11-29 09:55:51 +08:00
    lombok 的实现非常 hack,并且很多你需要的特性都可以用 kotlin 解决,最好还是别用。
    l8g
        41
    l8g  
       2019-11-29 10:09:46 +08:00   ❤️ 1
    就凭 lombok 要强奸别人在 IDE 里装插件,我就不支持。
    DsuineGP
        42
    DsuineGP  
       2019-11-29 11:25:03 +08:00
    @sagaxu 一般 json 工具类比如 fastjson 会考虑到循环引用的情况,问题不大.
    但是 lombok 最坑爹的是默认 hashcode 会依赖属性的 hashcode,如果实体有一个 List 属性并且 List 中的元素循环引用的话,循环计算 hashcode,接着就会 StackOverflowError.
    这类细节只有踩过坑的人才知道,强行推这玩意就得做好相应的培训和分享.
    balaWgc
        43
    balaWgc  
       2019-11-29 11:55:08 +08:00
    是 idea 生成不香吗
    glaucus
        44
    glaucus  
       2019-11-29 11:57:27 +08:00
    Kotlin 吧,用了后腰不酸腿不痛了
    meeop
        45
    meeop  
       2019-11-29 12:05:22 +08:00
    我再某独角兽公司,也是不让用,要么 idea 自动生成,要么 kotlin
    iisky1121
        46
    iisky1121  
       2019-11-29 12:11:59 +08:00
    依赖插件,好麻烦呀
    UsherOu
        47
    UsherOu  
       2019-11-29 12:30:19 +08:00
    支持领导,lombok 不推荐用,alt+ins 不行么
    szq8014
        48
    szq8014  
       2019-11-29 13:11:06 +08:00
    @billlee 我是和 kotlin 混用的时候去掉的 lombok
    royan
        49
    royan  
       2019-11-29 13:33:34 +08:00
    既然公司有规范,那就按规范来咯,有什么好犟的[狗头]
    a68UkLHpycW7ImyV
        50
    a68UkLHpycW7ImyV  
       2019-11-29 13:51:57 +08:00
    我也不让别人用
    romisanic
        51
    romisanic  
       2019-11-29 13:58:54 +08:00
    lombok 确实有一些坑,而且一般都是运行时错误,不了解无法快速解决的情况下,不建议盲目引入。
    要用的话,也得有了解的足够清楚的人做好培训才行,当然也没法彻底避免
    mineqiqi
        52
    mineqiqi  
       2019-11-29 14:06:02 +08:00
    lombok 还有个坑,第二个字母大写的变量生成的 get/set 方法有问题
    brucefu
        53
    brucefu  
    OP
       2019-11-30 16:57:27 +08:00
    @peyppicp public ?和 lombok 功能差不多的包吗? github url ?
    brucefu
        54
    brucefu  
    OP
       2019-11-30 17:01:58 +08:00
    @wmhx 可是技术不饶人呀!虽然我只是说不让用 lombok,其实其他一些技术公司也是不赞成用的。我感觉这就是为什么一些后起之秀公司的技术更好(中国),老公司被故障弄的不敢打开拳脚了、
    brucefu
        55
    brucefu  
    OP
       2019-11-30 17:04:13 +08:00
    @hyrepo eclipse 看 idea 的代码也红,最后大多不都用 idea 了。变红就是老一辈们不愿意用 lombok 的原因吗?
    brucefu
        56
    brucefu  
    OP
       2019-11-30 17:05:22 +08:00
    @javapythongo 新项目用 Springboot,不过还都是手动配置那一套,跟用没用没两样。目前 ssh 很少吧,Struts2 都拉成啥样了
    brucefu
        57
    brucefu  
    OP
       2019-11-30 17:06:46 +08:00
    @NeinChn 你知道 spring 的实现原理、有哪些坑吗?你的下属知道吗?
    brucefu
        58
    brucefu  
    OP
       2019-11-30 17:08:56 +08:00
    @uxstone 正解,有多少领导 git 都不会用。前几天领导问我怎么命令创建分支,我怀疑他之前是不是都是 web 页面创建,然后拉下来。知名二线互联网公司,真事
    brucefu
        59
    brucefu  
    OP
       2019-11-30 17:12:17 +08:00
    @billlee 升级大版本,肯定检查所有依赖的 jar 包是否支持,所以这个坑可以避免。至于语言混用,小弟只会写 java bean
    brucefu
        60
    brucefu  
    OP
       2019-11-30 17:13:41 +08:00
    @anyele 如果团队领导想用,是不是就适合团队了。比如 5 年后,我这帮人都到了领导层
    brucefu
        61
    brucefu  
    OP
       2019-11-30 17:17:44 +08:00
    @wangxiaoaer lombok 也是个技术嘛,我们几乎一直在学习新技术、用新技术,为什么要因为害怕问题而拒绝使用新技术?是不是因为中层领导不想担责任担风险的锅?老白兔,只是混着,不用出太大的业绩,今年搞搞重构,明年搞搞迁移,别出事情他就不会滚蛋。
    brucefu
        62
    brucefu  
    OP
       2019-11-30 17:20:13 +08:00
    @jipaidian 肯定要一个中层领导去推才行。中层领导不愿意管这个没有业绩的事、不愿意担风险。确实 lombok 有一些注解得下功夫系统学一下。
    brucefu
        63
    brucefu  
    OP
       2019-11-30 17:21:13 +08:00
    用 idea 生成 getter 的就不用回复了,丢人。还有,除了 getter setter toString,其实我特别想生成 logger
    brucefu
        64
    brucefu  
    OP
       2019-11-30 17:25:34 +08:00
    @l8g 你有没有被人强奸过装 git ?装 maven ?
    NeinChn
        65
    NeinChn  
       2019-11-30 18:14:50 +08:00   ❤️ 1
    @brucefu,Spring 的基础原理,大概实现我是懂的,而且技术是用来解决问题的
    你就这么纠结 lombok 这种可有可无的语法糖,还是有坑的语法糖,即不能提升效率,解决不了实际问题的东西
    除了满足自己的虚荣心,看起来很追求新技术,可以痛斥老白兔不求上进以外还能做啥?
    而且你一直强调“新技术”,合理的技术才是合适的,什么场景用什么技术,基于业务和场景做选型
    新技术算个啥?旧技术就不能用了?
    hyrepo
        66
    hyrepo  
       2019-11-30 18:35:40 +08:00 via iPhone
    @brucefu eclipse 红是因为你提交了 idea 相关的文件进代码库啊,别动不动就是什么老一辈不思进取抵制新技术,别人比你多出的经验是毫无价值的吗,推新技术之前先权衡下利弊啊,优点是什么,带来的代价又是什么,lombok 配好后写起来是很爽我承认,但是这种依赖于 ide 的插件,别人代码拉下来后还得配置半天才能上手,你觉得这算是一个很好的实践吗?
    brucefu
        67
    brucefu  
    OP
       2019-11-30 18:51:19 +08:00
    @NeinChn 好可怜,说不过就开始人身攻击和扯极端了。LOW
    NeinChn
        68
    NeinChn  
       2019-11-30 19:45:48 +08:00
    @brucefu
    这都算人身攻击,这未免太玻璃心了
    说技术吧,前面那么多人说了,你就不听非抬扛
    你这就是只听自己想听的,既然这样也没什么讨论的必要了
    anyele
        69
    anyele  
       2019-12-01 01:30:29 +08:00
    @brucefu #59 我觉得 5 年后你当了领导, 更不会用, 因为那时候你就发现招人好难, 招合适的人更难
    waterlaw
        70
    waterlaw  
       2019-12-01 22:04:19 +08:00 via Android
    @brucefu lombok 在纯 java 可用, 也可以手写 getter/setter, 语法识别确实需要 ide 插件支持,不想折腾的话用就生成好代码吧,想折腾的话 idea 有很多不错的功能。可以问下公司为什么不让用(估计有人踩到坑了或者听到什么风声)?
    l8g
        71
    l8g  
       2019-12-02 09:15:14 +08:00
    @brucefu
    maven、git 能和 lombok 这种 hack 的入侵代码的东西一样吗?
    不让用 lombok 就是反人类,你代表哪个人类了?
    你发帖唯一的目的就是来找认同么?好的,那 lombok 真香,怎么没有插件能自动帮我写代码呢?写代码好累哦。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   945 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 81ms · UTC 21:59 · PVG 05:59 · LAX 13:59 · JFK 16:59
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.