V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
lelelelelele
V2EX  ›  程序员

什么是 Java 味,是一种对 javaer 的歧视吗?

  •  
  •   lelelelelele · 19 小时 53 分钟前 · 3565 次点击

    在 V2 等平台常看到“写代码一股 Java 味”的调侃,甚至带有歧视意味,说实话,一直很不理解这种调侃?

    64 条回复    2025-04-04 06:27:00 +08:00
    vincentWdp
        1
    vincentWdp  
       19 小时 50 分钟前   ❤️ 15
    有种三天斋戒, 沐浴焚香, 登泰山之巅, 祭祀天地, 就为了把一枚硬币翻个面的感觉.
    ifsclimbing
        2
    ifsclimbing  
       19 小时 50 分钟前
    喜欢过度设计
    wxw752
        3
    wxw752  
       19 小时 49 分钟前
    作为一个老 jvaver ,我倒是挺能理解的
    codepark
        4
    codepark  
       19 小时 49 分钟前   ❤️ 1
    针对的不是语言么,为啥会到人这一层。
    hwdq0012
        5
    hwdq0012  
       19 小时 48 分钟前
    我的.net 项目被 java 接手后,他来问我
    a?.b?.?c 是什么意思,我只好向他解释
    if(a!=null)
    if(b!=null)
    if(c!=null)
    return c;
    else return null;
    esle return null;
    else return null;
    Bazingal
        6
    Bazingal  
       19 小时 48 分钟前
    大概是过度面向对象吧
    wyntalgeer
        7
    wyntalgeer  
       19 小时 48 分钟前
    过度封装过度设计
    adoal
        8
    adoal  
       19 小时 46 分钟前
    @hwdq0012 呃,应该是 a.b != null 、a.b.c != null 和 return a.b.c 吧
    X0V0X
        9
    X0V0X  
       19 小时 45 分钟前   ❤️ 2
    我的直观感受就是一个函数能解决的事,非要弄个对象出来,甚至再继承一下
    hwdq0012
        10
    hwdq0012  
       19 小时 45 分钟前
    @adoal 是的,我想说的就是这个,我已经两年没写 c#了(逃
    tpeng9240
        11
    tpeng9240  
       19 小时 41 分钟前
    来公司写了几天 python 了,确实比 java 爽,小服务,脚本语言足够了
    niboy
        12
    niboy  
       19 小时 38 分钟前
    我记得搞 spring 的时候,非得搞很多层.....
    hidemyself
        13
    hidemyself  
       19 小时 37 分钟前
    一定要依赖倒置
    Bazingal
        14
    Bazingal  
       19 小时 35 分钟前
    @hwdq0012 #5 这个例子跟 java 味没什么关系吧,非要举例,应该是明明 C#有 Properties 了,还非要自己写 get/set
    lelelelelele
        15
    lelelelelele  
    OP
       19 小时 31 分钟前
    @hwdq0012 这个应该是别人不懂 c#的语法吧?
    hwdq0012
        16
    hwdq0012  
       19 小时 30 分钟前
    @Bazingal 在 c#的角度来看 java 味是没什么语法糖,啰嗦,什么都是类。但其他语言不是只有 class ,java 尝试其他语言的时候会把只有 class 的这种设计套到其他语言上,写出 java 味的代码
    adoal
        17
    adoal  
       19 小时 29 分钟前
    @Bazingal nullable type 的语法糖
    foolishcrab
        18
    foolishcrab  
       19 小时 28 分钟前 via iPhone
    很多人喷不到点上,比如说啥文件夹嵌套之类的,这根本都不是事。
    但是过度封装过度抽象确实是广泛存在的问题
    jackwaycn
        19
    jackwaycn  
       19 小时 28 分钟前
    调侃归调侃,歧视的人指定有问题的,哪有完美的语言呢
    hwdq0012
        20
    hwdq0012  
       19 小时 27 分钟前
    @lelelelelele 在 c#的角度来看 java 味是没什么语法糖,啰嗦,什么都是类。但其他语言不是只有 class ,java 尝试其他语言的时候会把只有 class 的这种设计套到其他语言上,写出 java 味的代码
    gxm44
        21
    gxm44  
       19 小时 27 分钟前
    主要是吐槽过度设计吧
    lyxxxh2
        22
    lyxxxh2  
       19 小时 26 分钟前



    有 java 味吗?
    不过我可没写过 java 。
    yooomu
        23
    yooomu  
       19 小时 23 分钟前
    其实就是歧视,但这也不是无中生有,我有个同事就喜欢随便写个 service 都要整个接口实现下。我说这样冗余太多,看代码费劲,需要抽象时再用接口重构也不费事,他说我大家都这么写,说我是“众人皆醉我独醒”。那我也只能顺从
    wetalk
        24
    wetalk  
       19 小时 16 分钟前   ❤️ 9
    本质上就是 doNet 、Python 等之流,对他们熟悉的语言,在国内不能占据生态位,从而迁怒于人而已。
    至于为什么没能占据 Java 的生态位呢,当然是 Javaer 的问题啦
    crackidz
        25
    crackidz  
       19 小时 14 分钟前
    先别管有没有必要,先把模式设计板出来,也别管代码是不是简洁高效易理解。最后要么重新推翻,要么变成屎山~
    errorMsg0xff
        26
    errorMsg0xff  
       19 小时 11 分钟前
    @yooomu 确实,很多情况其实都不要接口
    lelelelelele
        27
    lelelelelele  
    OP
       19 小时 7 分钟前
    弱弱问一句,大家对设计模式有什么看法,平时也会用,而且在某些场景下觉得还是挺好用的。
    AlexHsu
        28
    AlexHsu  
       18 小时 55 分钟前   ❤️ 2
    我觉得吧 你可以从 Initializer Processor Manager Holder Component Factory Handler Interceptor Filter Listener Adapter Resolver Builder Validator Strategy Context 。。。。这些地方吐槽 java 还有意义
    要是从语法糖角度你可以吐槽任何一门语言 包括 c c++ pascal 这些老东西
    yooomu
        29
    yooomu  
       18 小时 54 分钟前   ❤️ 1
    @lelelelelele #27 是好东西,但其实也是为了弥补 java 语法抽象能力不足的问题。但写业务代码,那么多设计模式,常用、实用的也就策略模式、责任连模式,不然看到那种一个方法几百行的 if else 真的头大。有些人滥用设计模式才是大问题,十几行的核心代码能整出好几个类
    aboutier
        30
    aboutier  
       18 小时 48 分钟前
    人红是否多,windows 也经常被吐槽, 奈何别人占有率高得可怕。所以才有那么多人嘲笑印度阿三。
    lyer5
        31
    lyer5  
       17 小时 36 分钟前
    @hwdq0012 难道不是后者更易读清晰?
    hwdq0012
        32
    hwdq0012  
       17 小时 17 分钟前
    @lyer5 class Adder { int add(int a, int b) { return a + b; } }
    这样看起来只有 javaer 觉得更清晰吧
    proxytoworld
        33
    proxytoworld  
       17 小时 8 分钟前
    java 味=xxx/com/aaa/bbb/src/main/

    创建这样一大串的目录,很抽象
    Ghrhrrv146
        34
    Ghrhrrv146  
       16 小时 29 分钟前
    @yooomu #29 设计模式本质就是狗皮膏药,用得越多说明语言/架构问题越大
    collery
        35
    collery  
       16 小时 24 分钟前
    一群写脚本语言的把
    lyer5
        36
    lyer5  
       16 小时 23 分钟前   ❤️ 1
    @hwdq0012 我说 a?.b?.?c 不易读,你给我发 Adder ,这不就是无脑黑吗
    wolfie
        37
    wolfie  
       16 小时 18 分钟前
    @Ghrhrrv146
    设计模式是,特定场景最优解之一,并且提供统一了命名。
    看不懂设计模式,说明代码理解差。
    hwdq0012
        38
    hwdq0012  
       16 小时 13 分钟前
    @lyer5 我哪知道你在回复哪一楼 ,我以为你回复的是#16 楼

    a?.b?.c? options chain 不是 c#独有的功能,用过的人一眼懂,而且表达式比那几行 if 不简洁很多,养成习惯更是告别了空指针错误
    laikick
        39
    laikick  
       16 小时 9 分钟前 via iPhone
    是阿里味 国内互联网公司被阿里这家毒瘤老中公司害惨了
    wu00
        40
    wu00  
       16 小时 6 分钟前
    面向对象的语言都差不多,java/c# 封装继承多态,你单人项目不做任何设计一把梭也是可以的
    多人开发的项目中没有那些”过度设计“中间堆屎可能都堆不动
    seansong
        41
    seansong  
       15 小时 56 分钟前
    总觉得 java 程序员有种说不出来的根深蒂固的思想,而且总以自己语言的思想去思考或者要求别人,另外就是过度设计、框架化太严重,大概就这些吧
    wysnxzm
        42
    wysnxzm  
       15 小时 49 分钟前
    Erich Gamma 在其博士论文中进一步探索设计模式,随后与 Richard Helm 、Ralph Johnson 、John Vlissides (合称“四人帮”,GoF )合作,系统整理了 23 种面向对象设计模式。1994 年,GoF 的经典著作《设计模式:可复用面向对象软件的基础》出版,标志着设计模式在软件工程中的体系化与标准化

    Java 语言正式发布于 1995 年 5 月 23 日
    jqtmviyu
        43
    jqtmviyu  
       15 小时 45 分钟前
    @hwdq0012 #37 对, js 也有, 可选运算符.
    hwdq0012
        44
    hwdq0012  
       15 小时 44 分钟前
    @jqtmviyu js, ,ts, kotlin ,ios swfit 都支持
    tommyzhang
        45
    tommyzhang  
       15 小时 23 分钟前
    是一种无知但又无耻的愚蠢
    xiao17
        46
    xiao17  
       15 小时 23 分钟前
    @lyxxxh2 类型都没有,无味
    Maboroshii
        47
    Maboroshii  
       15 小时 16 分钟前
    只会被引用一次函数也要搞几个设计模式封装一下,函数名还特别长,看 java 转 go 同事写的代码,深深的被震撼到。
    realpg
        48
    realpg  
       14 小时 57 分钟前
    @hwdq0012 #20
    恨不得一个 hello world 都给你整出个 handler provider 就是 java 人了
    chenqh
        49
    chenqh  
       14 小时 49 分钟前
    @lyxxxh2 你是一个文件一个类吗?
    zizon
        50
    zizon  
       14 小时 26 分钟前
    可能因为即使不懂 Java 对于所谓的 Java 味代码都能一眼看出是干什么的从而指点一下吧,不像 rust 之类的学个三五年才敢写基本的双向链表.
    liprais
        51
    liprais  
       14 小时 25 分钟前
    没做过复杂项目呗
    iyaozhen
        52
    iyaozhen  
       13 小时 8 分钟前
    @codepark 恰恰针对的就是人
    azraeljack
        53
    azraeljack  
       12 小时 47 分钟前
    @yooomu #23 我自己感觉写接口的话比较好写单测吧,尤其是 services 之间有依赖关系的时候。当然要是不写单测是无所谓了(逃
    Bingchunmoli
        54
    Bingchunmoli  
       12 小时 2 分钟前 via Android
    @yooomu 主要是还有一个问题不是人上来就会用的,只能从简单的需求过度封装去理解设计模式然后才可以灵活使用到该使用的位置,但是人太多参差不齐有的只是为了用而用(比如简历好看)。那就没办法
    james122333
        55
    james122333  
       12 小时 0 分钟前 via Android
    你凭良心讲这不是很贴切吗 一堆设计模式不过是因应产生 也只有爱写的会觉得设计模式好 事实上 java 也可以不那么写 计算机的世界没有什么是不可以加一层转译的 等遇到了再转译不迟 也不会增加多少複杂度
    james122333
        56
    james122333  
       11 小时 53 分钟前 via Android
    这有个词叫无招胜有招 见机行事以符合上层脑热想到的 整成 java 那样无法应对千变万化的需求的 光封装可视就搞死人了 这也是框架坏处
    levelworm
        57
    levelworm  
       11 小时 36 分钟前 via Android
    getter setter?
    Leon777
        58
    Leon777  
       11 小时 23 分钟前
    没见过复杂的业务逻辑又只会套培训班的模板确实会觉得 java 啰嗦的毫无必要,只有重业务逻辑的项目加经验丰富代码风格优秀的开发人员才能发挥 java 的优势
    agagega
        59
    agagega  
       11 小时 20 分钟前   ❤️ 1
    Javaer 就偷着乐吧,Java 味起码还是个言之有物的批评。C++这边,任何 C++新闻都能遇到和内容完全无关的评论,如 C++98 哥、不如 Rust 哥、大道至简哥、花里胡哨哥、纯 C 哥,相比之下 Java 黑太有水平了🤣
    YYYeung
        60
    YYYeung  
       9 小时 32 分钟前
    不面向对象,是无法管理多人合作的项目的

    面向对象的精髓就是:「对象」就是打工人,随时可以被替换
    YYYeung
        61
    YYYeung  
       9 小时 29 分钟前   ❤️ 1
    @YYYeung 之前我也觉得 Java 很啰嗦,后来写着写着发现还得是 Java 那套;兜了一个圈,发现归宿还是「 Java 味」
    herozzm
        62
    herozzm  
       7 小时 48 分钟前 via iPhone
    因为 javaer 的复杂或者循规蹈矩的绕来绕去的写法为大家所不齿,明明一句能搞定的事情在 java 下面干几十行代码,这不是歧视,而是出于人类趋向简洁明了的工作尊重
    james122333
        63
    james122333  
       5 小时 8 分钟前 via Android
    @YYYeung

    并不是 达不到你要的效果 有很多特性会缩限被替换的可能性 尤其是用框架类的更是如此 就算有解法也是非常弯曲 也要多写很多东西
    aptupdate
        64
    aptupdate  
       3 小时 53 分钟前 via iPhone
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2310 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 02:20 · PVG 10:20 · LAX 19:20 · JFK 22:20
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.