V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
zivyou
V2EX  ›  程序员

迫于招人困难,团队的一个项目决定放弃 nodejs,转投 Java 。

  •  
  •   zivyou · 2020-06-05 11:15:43 +08:00 · 9289 次点击
    这是一个创建于 382 天前的主题,其中的信息可能已经有所发展或是发生改变。
    想听听老哥们对于这两种语言的看法。

    我自己的体会:
    1. nodejs 的核心问题在于「面向对象」不完善,设计模式、架构设计、团队合作略头疼
    2. java 太罗嗦了

    其实我想投 C++的,因为比较酷。。
    94 条回复    2020-06-06 13:38:49 +08:00
    heiheidewo
        1
    heiheidewo   2020-06-05 11:16:17 +08:00   ❤️ 3
    用 go 不香么
    zivyou
        2
    zivyou   2020-06-05 11:17:07 +08:00
    @heiheidewo 没这个选项,有个同学提了一嘴,就没然后了。。
    AllenHua
        3
    AllenHua   2020-06-05 11:18:38 +08:00
    java: 被针对了
    janxin
        4
    janxin   2020-06-05 11:20:50 +08:00
    有 Java 工程师为什么不用 Java 呢,Kotlin 不香吗
    1044523901
        5
    1044523901   2020-06-05 11:21:04 +08:00
    nodejs 用起来很香,目前团队在用 nodejs,感觉很爽,实在招不到人,人员可以从前端团队培养过去。
    snoob
        6
    snoob   2020-06-05 11:22:51 +08:00
    木有任何需求或者项目规模分析就技术选型吗?目前在用 eggjs 撸中小型的项目,挺舒服的。其实如果项目初期或者创业型的 nodejs 美滋滋啊。选型这东西,不都是分析下项目可能遇到的瓶颈在哪里,然后择优选择吗。
    axihe
        7
    axihe   2020-06-05 11:23:33 +08:00
    上 NestJS 或者 Eggjs,可以解决老哥的第一条痛点,架构,模式,团队合作就不是问题了;
    目前我们团队内都是这样用的,几个月下来美滋滋,挺香的。
    zivyou
        8
    zivyou   2020-06-05 11:24:04 +08:00
    @janxin 这就是个管理问题了。确实有同学之前主打 java,但不能立马调他去负责这个新项目啊
    zivyou
        9
    zivyou   2020-06-05 11:25:21 +08:00
    @snoob 再怎么分析也挡不住找不到人啊。。
    zivyou
        10
    zivyou   2020-06-05 11:26:48 +08:00
    @axihe 感谢老哥分享,确实没有了解过这两个。得花时间补一下
    janxin
        11
    janxin   2020-06-05 11:28:31 +08:00
    @zivyou 新项目可以招人解决?
    onlyfor
        12
    onlyfor   2020-06-05 11:30:33 +08:00   ❤️ 4
    踩过类似的坑(egg, go 之类), 不是建议你用, 只说下我们的最后方案: Laravel

    不啰嗦, 简洁明了, 目前没有性能要求跑的还行
    stevenhawking
        13
    stevenhawking   2020-06-05 11:32:48 +08:00   ❤️ 12
    用 PHP 不香吗,毕竟用 Java 后明年给老板就没法说再换个语言了
    wellsc
        14
    wellsc   2020-06-05 11:34:34 +08:00
    typescript 正好折中
    alw
        15
    alw   2020-06-05 11:35:57 +08:00   ❤️ 1
    1.nodejs 如果不配合 ts,维护重构 起来要出人命。
    2.JAVA 我感觉嘛 ,是罗嗦些,但维护起来爽,超好招人,容易“堆人”。
    u823tg
        16
    u823tg   2020-06-05 11:36:28 +08:00
    反正都是踩坑-_-
    vitoliu
        17
    vitoliu   2020-06-05 11:40:04 +08:00
    小公司用啥都行,不用太讲究
    maddot
        18
    maddot   2020-06-05 11:40:55 +08:00 via Android
    反正简历多了一条:熟练使用 NodeJS
    wangyzj
        19
    wangyzj   2020-06-05 11:42:05 +08:00
    转 java 整体看没错
    主要是看团队人员情况和成本了
    952764934
        20
    952764934   2020-06-05 12:06:54 +08:00
    用 Scala
    love
        21
    love   2020-06-05 12:14:46 +08:00
    面向对象不行是啥理由,Java 就是太面向对象了,搞得一层套一层,其实完全没必要

    node + typescript 写起来比 java 舒服得多,只不过门槛的确比 java 高一点。
    jones2000
        22
    jones2000   2020-06-05 12:16:39 +08:00
    完成设计文档里的需求, 按时上线验收, 收钱走人。用什么语言根本就不重要。只是项目开发的人力成本里面有区别,
    不通语言的开发人员工资不一样而已, 投入的开发人员个数不一样
    mazai
        23
    mazai   2020-06-05 12:20:30 +08:00
    想稳定就用 Java,那些说某某香的人真的用过某某开发过大型的应用吗?本人持怀疑态度哦~~ Java 至少你的坑已经有前人采过了,开发起来难度比较低,如果仅仅是为了酷而酷的话,那你随便了。。
    poorcai
        24
    poorcai   2020-06-05 12:22:35 +08:00 via iPhone
    c 井不啰嗦
    SwagXin
        25
    SwagXin   2020-06-05 12:25:04 +08:00
    .net
    nicevar
        26
    nicevar   2020-06-05 12:25:28 +08:00
    如果是中小型公司, 用 Java 就最稳定, 人好招, 坑不多, 我们公司就是主 Java+部分业务 nodejs
    Bazingal
        27
    Bazingal   2020-06-05 12:26:42 +08:00 via Android   ❤️ 1
    @poorcai 一会又有不懂装懂的人要来说生态了
    BBCCBB
        28
    BBCCBB   2020-06-05 12:28:23 +08:00
    用 Java 挺好的.

    我主业就是 java.

    不过我最近学了 typescript, 浏览器里玩还是要 js
    liuyunlong0908
        29
    liuyunlong0908   2020-06-05 12:36:29 +08:00
    kotlin 真的很香
    dasvenxx
        30
    dasvenxx   2020-06-05 12:40:13 +08:00
    没事,随便你想用啥,真完不成 大不了最后用 Java 重构😼
    hantsy
        31
    hantsy   2020-06-05 12:46:21 +08:00
    Node+ Typescript 跟写 Java 有那么大区别吗?
    optional
        32
    optional   2020-06-05 12:49:56 +08:00 via iPhone
    nodejs 后端后期工资上不去,转别的不少 go JAVA 。
    beyondex
        33
    beyondex   2020-06-05 12:58:32 +08:00 via Android
    Java 没错,.NET Core 开发快,运行效率也不错
    xizismile
        34
    xizismile   2020-06-05 13:04:09 +08:00 via Android
    日常语言撕逼贴,没啥卵用。。
    2379920898
        35
    2379920898   2020-06-05 13:07:31 +08:00
    选啥选~用毛用。你们老大早定好了,就是通知你一下
    lihongming
        36
    lihongming   2020-06-05 13:11:18 +08:00 via iPhone
    搞成微服务架构啊,各模块各玩各的,各种语言都能用,nodejs 做胶水语言还是挺好用的
    slyang5
        37
    slyang5   2020-06-05 13:12:48 +08:00
    国内的 大公司都在大规模的使用 JAVA 你就知道了。团队协作真的 很能打,API 也很稳定
    zivyou
        38
    zivyou   2020-06-05 13:13:10 +08:00
    @2379920898 😂还真是,当我们说决定用 java 的时候,领导表示很满意
    hpu423
        39
    hpu423   2020-06-05 13:17:25 +08:00
    转 java 的小公司后面都死了
    zivyou
        40
    zivyou   2020-06-05 13:20:43 +08:00
    @hpu423 这是为啥? 因为维护成本高吗?

    不过我们这个公司目前绝对死不了。。
    no13bus
        41
    no13bus   2020-06-05 13:21:40 +08:00
    java 用吧。如果你只是写 curd,选啥都无所谓的。选大家都熟悉的
    patz
        42
    patz   2020-06-05 13:26:50 +08:00
    这个要综合题主的实际情况, 例如如果题主的主要业务是做 WEB 开发,而且地区很难招人的话,我会选择 Node, 因为前后端一套 JS 搞定,招人也招 js 开发就行了,还没算 node 生态里的各种开源神器。 不过我对 JAVA 不太熟悉,所以难以对比两者,这里只提供个思路给大家参考哈。
    Jackeriss
        43
    Jackeriss   2020-06-05 13:28:05 +08:00
    座右铭:不选大的怎么能赢?公司想做大,先得把项目架构做大。Java 的中间件生态是其他语言不能比的。前期用什么语言无所谓,后期还是要转 Java 。毕竟普通公司又没实力自己去研发中间件,Java 拥有行业最成熟的解决方案。不想做大的话当我没说。
    hpu423
        44
    hpu423   2020-06-05 13:29:13 +08:00   ❤️ 1
    @zivyou java 就是靠堆人,另外团队如果没有一个 java 大牛,不出问题还好,出问题会很麻烦,小公司一般招不到 java 大牛
    Jackeriss
        45
    Jackeriss   2020-06-05 13:29:19 +08:00
    @hpu423 #39 不,要么死了,要么变大公司了,只是死的永远比变大的多。
    PineappleBeers
        46
    PineappleBeers   2020-06-05 13:35:58 +08:00
    同推荐 Eggjs + Typescript,第一条完美解决。
    zsl199512101234
        47
    zsl199512101234   2020-06-05 13:36:28 +08:00
    .net core 也不错,现在 3.1 了
    wccc
        48
    wccc   2020-06-05 14:00:57 +08:00
    rust 是不是更酷?
    594duck
        49
    594duck   2020-06-05 14:08:59 +08:00
    天天就想着改变世界。公司都被玩死了,太太平平用用 JAVA 蛮好的。
    ccsulzf0627
        50
    ccsulzf0627   2020-06-05 14:15:33 +08:00
    我用 angular,后台用 nodejs,我感觉我下一秒就找不到工作了
    namelosw
        51
    namelosw   2020-06-05 14:29:06 +08:00   ❤️ 1
    招不到人就说招不到人,不要扣 nodejs 「面向对象」不完善的帽子…… 以这个标准说 Java 和 C++也「面向对象」不完善

    不会写就说不会写,不要扣“设计模式、架构设计、团队合作略头疼”的帽子……

    你要是说性能不行,生态不如 Java 也就罢了……
    fyxtc
        52
    fyxtc   2020-06-05 14:29:50 +08:00
    什么时候比较酷也能作为技术选型了。。。看来还是没有被 CPP 毒打过
    nianyu
        53
    nianyu   2020-06-05 14:31:27 +08:00
    感觉不知所云 没说到点子上
    crazycarry
        54
    crazycarry   2020-06-05 14:42:37 +08:00
    啥好选的,java 要啥有啥,crud 搬砖搞得很高大上一样。还有那啥,门槛比 java,怕是就写个 hello world 就是会了。
    HangoX
        55
    HangoX   2020-06-05 14:48:54 +08:00
    java 再怎么不收待见,最起码 java 的入门和使用门槛真的更低,业务庞大之后非常适合叠人。
    而且你不喜欢 java 还可以用其他 jvm 语言,也更方便
    starlion
        56
    starlion   2020-06-05 15:08:53 +08:00
    c++,酷? 额,这个逻辑自己玩玩还可以。你是做基础软件比如数据库,存储之类的,当然可以考虑 c++。如果是其他的还是 golang 或者 java,他俩都香
    gadsavesme
        57
    gadsavesme   2020-06-05 15:09:16 +08:00   ❤️ 1
    现在搞得好像技术选型用 java 就变成了 lowb 一样。。。不懂这种风气啥时候形成的,培训班输出了太多 java 搬砖工造成写 java 就是菜逼行为的假象吗。。。
    kilen3a
        58
    kilen3a   2020-06-05 15:12:21 +08:00   ❤️ 1
    这简单啊,招 Java 的人进来搞 Kotlin
    Marstin
        59
    Marstin   2020-06-05 15:12:34 +08:00
    中大型项目就还是 java 吧,已经见证了好多项目迫于其开发语言难以实现微服务,切换技术栈为 java
    gejun123456
        60
    gejun123456   2020-06-05 15:13:02 +08:00 via iPhone
    kotlin 香得很
    MarkLeeyun
        61
    MarkLeeyun   2020-06-05 15:43:30 +08:00
    @vitoliu 是纯洁的微笑老兄吗?好熟悉。
    miniwade514
        62
    miniwade514   2020-06-05 15:50:22 +08:00
    好奇,你们公司规模如何,做的是什么业务?国内把 node 作为后端主要语言的公司,以前听说过一个“孢子”,后来就没怎么听说了。
    公司如果想做大,将来会需要很资深的后端研发和架构师,想在 node 圈子里招到这种角色太难了。
    tt67wq
        63
    tt67wq   2020-06-05 15:59:15 +08:00
    招人不看语言,会数据库就行
    zivyou
        64
    zivyou   2020-06-05 16:05:15 +08:00
    @miniwade514 公司规模挺大的,就是送外卖的那家。
    james122333
        65
    james122333   2020-06-05 16:05:27 +08:00
    js 的性能其实都很好
    只有语法能吐嘲了
    面对对象也有面对对象的坑
    有什么理由需要管理几十几百种别人乱写的物件
    fangdown
        66
    fangdown   2020-06-05 16:06:52 +08:00
    nodejs 一般适合中间件, 纯后台开发还是比不上 java php 的

    [深圳 /长沙] 腾讯云前端社招~~急招!!!联系我内推,微信同号
    toma77
        67
    toma77   2020-06-05 16:08:19 +08:00
    react+nodejs+typescript SSR 一把梭
    wshcdr
        68
    wshcdr   2020-06-05 16:32:32 +08:00
    转 C++ ? 微笑
    Rwing
        69
    Rwing   2020-06-05 16:41:25 +08:00
    考虑下 c# 吧,哈哈,不过确实 java 人最多
    wangkun025
        70
    wangkun025   2020-06-05 16:45:04 +08:00
    你们也忒随意了。
    Reflection
        71
    Reflection   2020-06-05 16:47:42 +08:00
    @onlyfor 老师人
    yahon
        72
    yahon   2020-06-05 17:06:24 +08:00
    Spring Boot 要啥有啥 不香吗?
    wizzer
        73
    wizzer   2020-06-05 17:15:51 +08:00   ❤️ 2
    stillyu
        74
    stillyu   2020-06-05 17:21:25 +08:00
    其他地方看到的都是 nodejs 后端不行了,但这里怎么还是感觉很香
    EKkoGG
        75
    EKkoGG   2020-06-05 17:24:01 +08:00
    .net core 爽!
    sonyxperia
        76
    sonyxperia   2020-06-05 17:24:22 +08:00
    这就是对 Java 的偏见,仅仅是因为 Java 不够酷,就被完全否定了
    airplayxcom
        77
    airplayxcom   2020-06-05 17:30:00 +08:00
    php 天下第一 ! [手动滑稽]
    xiershen
        78
    xiershen   2020-06-05 17:33:54 +08:00   ❤️ 1
    nodejs 转 Java 可以用 Vert.x,都是基于事件循环的
    yazoox
        79
    yazoox   2020-06-05 17:53:58 +08:00
    不要“为了面向对象”而面向对象
    这是本末倒置了吧……
    DingSoung
        80
    DingSoung   2020-06-05 17:54:21 +08:00 via Android
    nodejs 也不难啊 现学现用 除非是你要一下子搞一个很大的项目
    gitjavascript
        81
    gitjavascript   2020-06-05 17:59:33 +08:00
    kotlin 不香么
    Zink99
        82
    Zink99   2020-06-05 18:11:31 +08:00   ❤️ 1
    目前使用技术栈:node + ts + graphql
    个人感觉还挺香的
    zivyou
        83
    zivyou   2020-06-05 18:27:47 +08:00
    @wangkun025 没有,只是我描述的随意而已。nodejs 我们也已经用来开发过两个大型项目了,也确实从施工过程中体会到了一些不便。而且今天的讨论也不是完全转变团队的技术方向,而是决定下个大型项目的选型。
    blurh11E27
        84
    blurh11E27   2020-06-05 18:48:45 +08:00
    php 啊
    jzphx
        85
    jzphx   2020-06-06 08:51:14 +08:00
    这不是得看你们架构师熟悉什么吗?选语言这么纠结难道是没有架构师全部扁平化管理的吗?
    betulac
        86
    betulac   2020-06-06 09:35:12 +08:00
    nodejs 本来就是给前端团队用的啊 ,没有后端鸟的时候前端只能自力更生 , 而且目前的蛋和窝挺不错的了 一般需求基本都能满足,js 和 java 差的不是一点半点
    betulac
        87
    betulac   2020-06-06 09:35:46 +08:00
    @betulac js 和 java 的差别不是一点半点,说错了
    zh5e
        88
    zh5e   2020-06-06 09:40:58 +08:00
    工具类的应用脚本语言,业务复杂的用编译型。java 就算了吧,还要套个 jvm 。我们选的 go,生态也不错,社区啥都有
    zh5e
        89
    zh5e   2020-06-06 09:45:23 +08:00
    其实 c++也不错,用好标准库,不存在诟病的内存问题,开发语言需要具备的语言特性都有
    zh5e
        90
    zh5e   2020-06-06 09:46:05 +08:00
    @952764934 都是现代社会了,还说文言文?
    james122333
        91
    james122333   2020-06-06 11:10:09 +08:00
    @stillyu

    js 阿 又不一定是 node...
    最近不是有一直在推 deno
    gzwgq222
        92
    gzwgq222   2020-06-06 12:11:45 +08:00
    有个 offer,主前端兼部分后台 node 开发,也不知道要不要去。
    shuangya
        93
    shuangya   2020-06-06 13:21:35 +08:00   ❤️ 1
    只能说具体情况具体分析了,没有最好的,只有最合适的。
    举个例子,语雀就是一个庞大的 nodejs 的应用,所以 nodejs 实际上也可以写大型应用,并且相应的架构、团队合作也有比较成熟的方案(例如蚂蚁金服开源的 eggjs )
    语雀面临快速的迭代,并且目前为止,因为良好的基础设施,没有明显的性能瓶颈,所以 nodejs 是语雀目前为止最合适的选择。
    后续会不会换成 Java ?这个还真不好说。可能有一天 node 成了语雀的性能瓶颈后会换吧。
    相应的,你可以评估一下,你们团队的现状是什么样的,转投其他语言成本有多大,能带来什么(不止是技术上的,还要考虑到,业务能不能不耽误,总不能说因为你们要重构就一两个月不更新新功能吧)
    另外不推荐不熟悉的语言,包括 Go 、PHP 、.NET 。也不推荐动不动就搞什么微服务啥的。不是他们不好,是因为你们团队没人足够熟悉,贸然换上它们会踩很多坑,而且很可能会出现各种“疑难杂症”,带来的收益也不一定会有想象中大。
    usoluyun
        94
    usoluyun   2020-06-06 13:38:49 +08:00   ❤️ 1
    团队扩充最怕就是拘泥于某个语言和技术栈,不同规模的团队,适合的技术栈也会不同。你现在就是很好的例子。程序代码好不好最终取决于写的怎么样,而不是语言本身。java 你要优雅的开发方法也有很多种,js 写的一塌糊涂的一样大有人在。java,python 能打,主要靠的是生态。生态干不过,语法优雅也没用。
    关于   ·   帮助文档   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   2847 人在线   最高记录 5497   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 61ms · UTC 04:30 · PVG 12:30 · LAX 21:30 · JFK 00:30
    ♥ Do have faith in what you're doing.