Kongtou

技术总监让我不要用 lamda 表达式,说 Java 已经过了炫技的年代!

  •  
  •   Kongtou · Mar 15, 2018 · 14274 views
    This topic created in 3156 days ago, the information mentioned may be changed or developed.
    请问这是真的吗?
    如果是真的话,想转行写 Python 了。。。。
    73 replies  •  2019-06-17 14:51:07 +08:00
    p2pCoder
    p2pCoder
    Mar 15, 2018 via Android
    1
    这种东西,统一吧,看团队要求
    wtgam
    wtgam
    Mar 15, 2018
    2
    不太懂 lamda 和炫技的关系?
    gnuth
    gnuth
    Mar 15, 2018
    3
    喜欢 lambda 的话,用函数式编程语言,比如 Haskell
    orangeade
    orangeade
    Mar 15, 2018
    4
    Lambda 有什么炫技的
    MeteorCat
    MeteorCat
    Mar 15, 2018 via Android
    5
    公司项目风格统一,不是你一个人的项目,你走了别人还要维护呢
    night98
    night98
    Mar 15, 2018 via Android
    6
    看同事吧 同事能看懂就可以写,大家都不会写就还是传统风格吧
    privil
    privil
    Mar 15, 2018
    7
    写注释不?
    myself659
    myself659
    Mar 15, 2018
    8
    还停留在语言层面上
    weiwio
    weiwio
    Mar 15, 2018 via Android❤️1
    9
    应该说 java 不要滥用 lamda 函数比较合适,这东西本来能简化本来需要写匿名内部类函数重载的地方。lamda 函数的作用应该一目了然,不宜写大块大块的代码,否则降低可读性
    ke1e
    ke1e
    Mar 15, 2018 via Android
    10
    觉得 lambda 很实用啊
    weiwio
    weiwio
    Mar 15, 2018 via Android❤️12
    11
    楼上大部分都在说跟着团队将就着来,但团队每个人都应该把实现最佳的代码质量作为自己的责任,你可以贡献你的想法,去证明这样更好,去分享经验,去说服别人。你如果经常能这么做并最后得到良好的结果,你还怕不能升职加薪么。
    weiwio
    weiwio
    Mar 15, 2018 via Android
    12
    还有道路必然是曲折的,但实现团队协作共赢是一种软实力
    Cbdy
    Cbdy
    Mar 15, 2018
    13
    思维僵化是做设计人员的大忌啊
    misaka19000
    misaka19000
    Mar 15, 2018 via Android❤️2
    14
    说明你们技术总监是彩笔
    hpeng
    hpeng
    Mar 15, 2018 via iPhone❤️2
    15
    你们技术总监技术不行啊,控制一下 jdk 版本你们就用不了啦,还要口头说
    weiwio
    weiwio
    Mar 15, 2018 via Android❤️1
    16
    @misaka19000 我觉得是有一类人喜欢给出自己的偏好观点,而不说具体实质性原因,来显示自己高人一等,比别人聪明厉害,其实嘛。。。
    congeec
    congeec
    Mar 15, 2018 via iPhone
    17
    等 java 10 的类型推导出来,看他用不用
    timothyye
    timothyye
    Mar 15, 2018
    18
    Lambda 有什么炫技的 +1
    timi
    timi
    Mar 15, 2018
    19
    开发人员水平参差不一,技术总监统一一下标准有啥好喷的。。。
    weiwio
    weiwio
    Mar 15, 2018 via Android
    20
    @timi 所以统一标准就是不要大家进步,向最低水平线看齐。我觉得不如花半小时团队互相分享一下经验,讲讲利弊,告诉大家什么时候用合适,什么时候用不合适。这样不是更好
    HangoX
    HangoX
    Mar 15, 2018❤️1
    21
    lambda 不是炫技,是弱化你不关心的东西。技术总监认识就有问题,但是不要自己使用,要推广开来,毕竟有些人看不懂
    weiwio
    weiwio
    Mar 15, 2018 via Android
    22
    @HangoX 同意,团队里应该适当组织分享知识和经验。况且这也不是什么高深的东西要浪费很多时间
    micean
    micean
    Mar 15, 2018
    23
    不用 lamdba 的话怎么玩 stream
    youxiachai
    youxiachai
    Mar 15, 2018
    24
    团队统一吧......为了维护..保守一些...
    jjianwen68
    jjianwen68
    Mar 15, 2018
    25
    用一部分,太复杂的逻辑就不用了,lambda 写那些复杂逻辑不好些
    bumz
    bumz
    Mar 15, 2018
    26
    不用 lambda,那就只能这么写咯:
    System.out.println(Stream.of(1, 2, 3, 4).filter(new Predicate<Integer>() {
    @Override
    public boolean test(Integer d) {
    return d % 2 == 0;
    }
    }).count());
    bumz
    bumz
    Mar 15, 2018
    27
    我就问他喜欢哪个
    ```
    System.out.println(Stream.of(1, 2, 3, 4).filter(d -> d % 2 == 0).count());
    ```
    MithrandirW
    MithrandirW
    Mar 15, 2018❤️1
    28
    写匿名内部类不更麻烦
    deadEgg
    deadEgg
    Mar 15, 2018
    29
    现在 lamdba 都算炫技了吗。
    RubyJack
    RubyJack
    Mar 15, 2018
    30
    普通的 lamdba 使用算哪门子的技啊?
    panpanpan
    panpanpan
    Mar 15, 2018
    31
    如果是我,我选择换一个家公司。
    dilu
    dilu
    Mar 15, 2018
    32
    PHP 中还有个东西叫魔术方法

    有些复杂的功能用魔术方法写起来比较简单

    但是性能会有一定的下降

    我不是写 Java 的但是我也知道 lamdba 更方便

    但是既然上面说了那就不用

    所有的程序员都有一个通病 就是总想在技术上说服别人

    实际上根本没有必要 只要你开的工资足够高 事情不多加班不多的情况下 你让我怎么写我就怎么写

    面向工资编程而已 没必要去争执什么 只要按时发工资就好
    Mazexal
    Mazexal
    Mar 15, 2018
    33
    @dilu 我也觉得, 可能是写代码时间久了, 对这种事情不敏感, 毕竟只要付工资就可以了. 至于想放飞自我, 自己可以创建自己的项目, 可以随意写
    xiaowangge
    xiaowangge
    Mar 15, 2018
    34
    还在用 JDK 7 的路过
    Fistandantilus
    Fistandantilus
    Mar 15, 2018
    35
    应该是技术总监看不懂吧
    maichael
    maichael
    Mar 15, 2018
    36
    炫技的确不好,但 lambda 和炫技有什么关系。
    shijingshijing
    shijingshijing
    Mar 15, 2018
    37
    团队如果有 Software Coding Standard,里面有规定不能使用 Lamda 那就遵守规定,规定不合适那就改规定。这才是标准流程。

    不少高安全等级的代码用 C 写,不让用递归、不让用 malloc,不能用函数指针,那是不是就不写了呢。
    stephenyin
    stephenyin
    Mar 15, 2018
    38
    吓得我这种不会 lambda 的程序猴不敢说话.
    FanError
    FanError
    Mar 15, 2018
    39
    @bumz 按照我的理解,总监哥估计对这个 Stream.of 的语法应该也归类在“炫技”里。
    hcymk2
    hcymk2
    Mar 15, 2018
    40
    为赋新词强说愁
    lonenol
    lonenol
    Mar 15, 2018
    41
    甩他脸上一本 java 函数式编程,问他懂不懂啥叫编程,啥叫抽象...
    cyspy
    cyspy
    Mar 15, 2018 via Android
    42
    Java 刚刚离开了无技可炫的时代不是吗
    contmonad
    contmonad
    Mar 15, 2018 via iPhone
    43
    Python 之父也不让你用 lambda:Why did Guido van Rossum want to remove lambda from Python 3? https://www.quora.com/Why-did-Guido-van-Rossum-want-to-remove-lambda-from-Python-3
    ixiaohei
    ixiaohei
    Mar 15, 2018
    44
    spring 5,spring boot2,spring cloud netflix 那堆框架里面 jdk8 的特性用一堆,lambda,functional interface,接口默认方法实现,新的时间 api,optional,谓词编程;我就问你们看不看源代码?
    chocotan
    chocotan
    Mar 15, 2018
    45
    java8 都出来好几年了
    培训机构估计都在讲这东西了吧
    cominghome
    cominghome
    Mar 15, 2018
    46
    在项目中能不用这种东西就不用是正确的,过多使用高级表达式会给后续代码的阅读带来困难。
    至于是不是炫技我觉得 lambda 倒还不算炫技吧。
    SuperCowPower
    SuperCowPower
    Mar 15, 2018
    47
    楼里头貌似关注点分为两个:
    1. 总监的话对不对
    2. 先不考虑总监的话对不对,楼主是不是该无条件听上头的话。

    对此啊。。我的看法是:
    1. 这个总监啊。。 思维江化!(可以讨论)
    2. 你们这些人那。。思维江化!(没得讨论)
    3. 亦可赛艇!
    iyaozhen
    iyaozhen
    Mar 15, 2018 via Android
    48
    @xiaowangge JAVA6 还很 happy
    ray1888
    ray1888
    Mar 15, 2018 via Android
    49
    还是看风格和团队规范,我就算是写 python 也比较少用 lamada。因为只要里面的逻辑比较复杂的情况下,lamada 表达式看起来很费劲,还不如直接写函数。个人认为易读性比较重要
    WinterWu
    WinterWu
    Mar 15, 2018❤️1
    50
    如果是普通的流程,的确没必要用。但是你用了流、用了 foreach、甚至就是用 Kafka stream,不用 lamdba 用啥,要写那一堆屎一样没有任何意义的模版代码吗?你们这个总监根本就是不合格的。

    事实上,这么多高级语言引入函数式都不是为了炫技:

    1. 代码逻辑更直观、代码更少!!!这意味着什么?减少 bug,降低维护成本。
    2. lamada 更多是用来和其它高阶函数结合使用
    3. lamada 的确不是给你写复杂逻辑的,人家名字叫 “表达式”不是没道理,一行内能解决的才是合适
    4. 就我面试结果来看,培训机构应该大部分还没教这个,估计他们老师自己都不会。
    murmur
    murmur
    Mar 15, 2018
    51
    @WinterWu
    代码多少和性能和程序员水平没什么直接的关联
    何况 java 牛逼的 ide 打出个函数声明也用不了写几个字
    WinterWu
    WinterWu
    Mar 15, 2018
    52
    @murmur
    请你仔细理解下我的话。如果看不懂,去好好看书,不光是语法,还有软件工程;哦还有语文。
    如果你只是会撸个单机数据库、没有几个用户、几张表单 web 服务器和程序员水平确没啥直接关联,对了,这种不写代码都能撸了。
    param
    param
    Mar 16, 2018 via Android
    53
    如果是 Python,有些场景下用 lambda 你说炫技也就算了。Java 的 lambda 也叫炫技?
    q397064399
    q397064399
    Mar 16, 2018
    54
    炫技去写 C++吧,, 软件工程的本质就是管理复杂度,消灭人的因素,如果原先所有的 代码都是匿名类之类,,
    我也不建议使用 lambda,语法糖并不能带来任何改变 ,Stream 流式 API 有一定的优化,可以考虑使用,
    任何东西都是要权衡的,码农多写几个字算什么,如果对管控复杂性有帮助,,让你把所有的业务流程
    画个流程图也不是不可能。
    safeoy
    safeoy
    Mar 16, 2018
    55
    目测你们总监很靠谱,赶紧抱大腿
    fiht
    fiht
    Mar 16, 2018
    56
    不是 Java 过了炫技的年纪,而是领导过了炫技的年纪。。
    cisisustring
    cisisustring
    Mar 16, 2018 via Android
    57
    @safeoy 同意总监靠谱。
    wupher
    wupher
    Mar 16, 2018
    58
    lamdba 炫技个 P 啊。这要是炫技,那 javascript 不是最要炸上天?

    你们总监明显根本就不是做技术的人。

    倾听你内心的声音比听什么总监的靠谱多了。
    CtrlSpace
    CtrlSpace
    Mar 16, 2018
    59
    开个大炮:新项目不用 JDK8 的都是垃圾
    sagaxu
    sagaxu
    Mar 16, 2018 via Android
    60
    金三银四,你还等什么
    int64ago
    int64ago
    Mar 16, 2018
    61
    照他这么说,JavaScript 就是天天在炫技,ES6/7/8/...,大部分更新其实都是语法糖,而很多特性还没正式进入规范就开始尝试用 Babel 在项目里用了

    总结:兄弟,来写 JS 吧,没人会因为你用新特性对你指手画脚,反而不用新特性会被嘲笑 :doge:
    murmur
    murmur
    Mar 16, 2018
    62
    @wupher javascript 本来就是要上天
    java 是有什么问题大家维护个牛逼的轮子 一起用
    你想要的语法糖 很可能在 google 或者 apache 的 utils 里早就解决了 虽然语法不是那么优雅

    js 是有什么问题要么造个语法糖要么自己造个轮子

    @int64ago js 这种语言 生来就带了一堆问题 后来再怎么吃药进补也改变不了其本质
    坐等 webasm 拯救世界 想用什么语言用什么语言 到时候你可以自豪的跟别人说老子写的是 JAVAscript 而不是 javascript
    aminic
    aminic
    Mar 16, 2018 via Android
    63
    jdk1.4 是最好的,后面的全是渣渣
    dreamtrail
    dreamtrail
    Mar 16, 2018
    64
    只能说你们的总监老了,接受不了新事物了
    dannywu1991
    dannywu1991
    Mar 16, 2018
    65
    @hpeng 精髓了 2333 我们特么一直用 7 太惨了
    sampeng
    sampeng
    Mar 16, 2018
    66
    应该是这个理由不成立。。团队如果所有人都 ok。其实无所谓。。否则你走了。别人看不懂,也是扯蛋
    xiaolanglang
    xiaolanglang
    Mar 16, 2018
    67
    说起这个,有谁的公司生产项目上了 Java 9 的吗?
    chocotan
    chocotan
    Mar 16, 2018
    68
    @gy911201 用 java9,以前的 maven 项目都要改配置才能打包成功......
    xiaolanglang
    xiaolanglang
    Mar 16, 2018
    69
    @chocotan 是的,我们也遇到了这个问题……而且好像还有 maven 插件不兼容……所以一直下不了决心升级…………
    stanjia
    stanjia
    Mar 16, 2018
    70
    本月 JDK 10 Release
    MartinWu
    MartinWu
    Mar 16, 2018
    71
    其实楼主就这么一句话,又没有上下文。 什么原因说出这句话真不好判断。楼主要是真是想解决这个疑惑,就应该详细说清楚来龙去脉,而不是一句话完事。个人觉得, 楼主只是想来秀下优越感。
    yanjinbin
    yanjinbin
    Mar 17, 2018 via iPhone
    72
    @timi 标准难道是大家一起用 jdk6 ?连 lambda 都不合理,那我大可以说字符串默认排序都要用 conparator 这样大家都能看得懂?是这个道理。。。。
    wjfkobe24
    wjfkobe24
    Jun 17, 2019
    73
    刚才我也让另一个人把代码里的 lambda 给删了
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   5221 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 310ms · UTC 01:30 · PVG 09:30 · LAX 17:30 · JFK 20:30
    ♥ Do have faith in what you're doing.