最近玩儿弄了下 koa, 用着还是挺香的,直聘上搜了下,貌似后端的 jd 上很少有对 node 的需求,无外乎 java,php,Python,go 。
那么问题来了,node 只是前端构建工具用的多吗?
|  |      1ysc3839      2020-12-15 19:18:14 +08:00 via Android 估计是性能问题+出现时间短。 Java, PHP, Python 都有 20 年以上的历史了,生态丰富。Golang 虽然出现晚但是性能比 Node.js 好。 | 
|      2wnpllrzodiac      2020-12-15 19:20:39 +08:00 via Android 异步回掉,结构会垮掉。太难了 | 
|  |      3Elethom      2020-12-15 19:24:08 +08:00 via iPhone 现在有哪个写后端的没用过 node 吗? | 
|      4crclz      2020-12-15 19:25:48 +08:00  1 node 写后端不是折磨?有好的东西不用 | 
|  |      5guiling      2020-12-15 19:30:24 +08:00 via Android express,koa,egg,nest 都用过,目前都是 nestjs 语言不重要,会啥用啥,生态都挺全的 | 
|  |      6anjianshi      2020-12-15 19:39:07 +08:00  2 java: 配套完善,从业者众多,编译型语言 PHP: 配套完善,从业者众多,短平快,虽然是脚本语言但有多年业界经验积累 Python: 配套完善,虽然是脚本语言,但语言规范性较 PHP 和 Js 更好一点(用 Python 做后端应该也不多) Go: 配套一般,但同时兼具编译型语言的安全性和脚本语言较快的开发速度,且性能不错 Node.js: 配套一般,脚本语言,且出来的晚,没有很完善的业界积累,不敢大规模用到核心业务。 | 
|      7fescover      2020-12-15 19:40:35 +08:00  4 几个大项目,node_modules 都能塞满服务器 | 
|  |      8gouflv      2020-12-15 19:42:50 +08:00 via iPhone  1 真正的 nodejs 程序员都在阿里和字节 | 
|  |      96IbA2bj5ip3tK49j      2020-12-15 19:44:57 +08:00 现在的项目在用 nestjs+typescript 活脱脱一个丐中丐中丐版的 Spring Boot,跟 Java 相比,看不到任何优势。 | 
|  |      10EPr2hh6LADQWqRVH      2020-12-15 19:45:09 +08:00  1 Java 太卷,PHP 是真不行,Python 性能大问题,Golang 21 世纪 PHP, 光 JS 自己是远远不够的,还需要 TypeScript 和多方生态外部加持。 全流程统一语言,降本增效,老板之友。 但对全流程一知半解的还是别轻易搞了,到时候资料都不知道咋搜 | 
|      11hantsy      2020-12-15 19:48:20 +08:00 我用我写 Java 的经历写了一个 nestjs 例子,https://github.com/hantsy/nestjs-sample 分支记录文档的步骤。 | 
|      12ben1024      2020-12-15 19:48:35 +08:00 有个项目用的 Node,出问题都硬撸,人才还是少 | 
|  |      13KuroNekoFan      2020-12-15 19:49:49 +08:00 via iPhone @xgfan 我也很好奇 nestjs 的竞争力在哪,如果说想搞出一个翻版 spring,那为什么不直接上 spring…… | 
|      14hantsy      2020-12-15 19:51:54 +08:00 | 
|  |      156IbA2bj5ip3tK49j      2020-12-15 19:54:12 +08:00 @KuroNekoFan “前端大佬”会,上了 nestjs,可以增加自己影响力 /KPI 。 | 
|  |      16kenshinhu      2020-12-15 19:58:08 +08:00 都长期写 node 了,深感体系没有 java 健全 | 
|      17hantsy      2020-12-15 20:01:24 +08:00 @xgfan NestJS 对于 OOP 特别 是 Java 程序员更友好,毕竟后端的生态圈子,换了一门语法或者框架,一样可以轻松套上去用。至于前端,如果不懂 OOP,Nestjs 也写不了,前后通用的东西太少了,除了语言本身。 | 
|      18IssacTomatoTan      2020-12-15 20:02:42 +08:00 via Android  1 node 做内部项目挺好的 贼快试错成本低 但是不建议对外输出 除非你家有足够积累 | 
|  |      196IbA2bj5ip3tK49j      2020-12-15 20:13:21 +08:00 @hantsy 你这段回复,解释了为啥 nestjs 要照着 spring 。 但是没有解释 “ nestjs 的竞争力在哪,如果说想搞出一个翻版 spring,那为什么不直接上 spring……” -------------------------------- @IssacTomatoTan 现在写 hello world 的玩具,各个语言都没有太大差别。 | 
|      20golangLover      2020-12-15 20:15:06 +08:00 via Android 大家觉得配套不完善的有例子吗 | 
|      21Lemeng      2020-12-15 20:17:47 +08:00 为啥用它呢 | 
|  |      22ShadowPower      2020-12-15 20:17:48 +08:00 node.js 的数据库驱动有好多坑,数字类型会丢精度 只有 MySQL 的驱动能配置以字符串类型返回数字…… | 
|  |      23hanxu317138      2020-12-15 20:20:12 +08:00 性能不够, 机子来凑~~~ | 
|  |      24wellhome      2020-12-15 20:20:14 +08:00 听各位的意思,deno 也不值得投入精力去学了? | 
|  |      25KuroNekoFan      2020-12-15 20:20:41 +08:00 @xgfan 我的理解是,纯前端,其实是能力是十分受限的,理想的情况是前端+一个很轻的 web 后端,这种'很轻的后端',express 应该足够胜任。 至于比较重的后端,我也没什么发言权,就不多说了 | 
|  |      26wellhome      2020-12-15 20:21:00 +08:00 那个人小项目, 后端到底用啥呢? 不喜欢 java 。太重, 除了 java 也没啥用了 | 
|      27hantsy      2020-12-15 20:22:16 +08:00 @xgfan 对于熟悉 Node 环境的人,之前有 Express 和 TypeScript 经验,现在有一个 Nestjs 框架能够提供各种服务的集成,可以像 Spring 那样简化开发流程,为什么要用不熟悉的 Spring ? | 
|      28hantsy      2020-12-15 20:25:07 +08:00 @ShadowPower 你用的什么数据库驱动或者框架? Nestjs 中使用 Mongoose 操作 Mongo,我反而觉得 OOP 是一种束缚了,之前我写过一个项目,感觉 JS 调用 Mongoose 真的不错。 | 
|  |      296IbA2bj5ip3tK49j      2020-12-15 20:27:49 +08:00 @hantsy 那就是会 node,不会 java 的人,选 nestjs 嘛。 那你前面说的“NestJS 对于 OOP 特别 是 Java 程序员更友好,毕竟后端的生态圈子,换了一门语法或者框架,一样可以轻松套上去用。”有屁用? | 
|      30fxjson OP 没有用 koa 的?支持 async,await,再也不用写回调了 | 
|  |      316IbA2bj5ip3tK49j      2020-12-15 20:34:26 +08:00 @golangLover 我随便说两个吧 1.如果要在 nestjs 前面加一个层(不同语言可能叫法不一样,filter/interceptor/middleware )来做签名验证。nestjs 是拿不到 raw request body 的,只能拿到自作聪明 parse 过的 body 。 2.默认的 json parser 有精度问题。 | 
|  |      33Kasumi20      2020-12-15 21:21:21 +08:00 不会吧不会吧, 不会真有人以为 JavaScript 就靠前端成为世界上用户最多的语言吧 | 
|      34fatigue      2020-12-15 21:39:06 +08:00 我知道的,有手机游戏服务器是用 nodejs 的,还行 | 
|      35SwainWong93      2020-12-15 21:40:54 +08:00 @gouflv 是因为场景吗? Node.js 做中台天然优势? | 
|  |      36GBdG6clg2Jy17ua5      2020-12-15 21:43:56 +08:00 @Kasumi20 #33 难道不是吗? | 
|  |      37maichael      2020-12-15 21:44:32 +08:00 后端是之前几年流行”全栈”这个概念的时候,node.js 招的比较多。 这玩意的尴尬点在于: 1. 不好招人,会写 JS,不代表就会后端,比起招 Java 后端、Go 后端,合格的 Node.js 后端要更难找。 2. 性能不行,或者说在大多数场景下性能都不太行。 中大型公司可能有些部门的有些产品会用到,但占比比较小,外包公司基本用 Java,初创型公司现在首选都是 Golang 或者 Java 。现在还有用 Node.js 基本都是前几年看 Node.js 火热选了的,船大难调头,还有一小部分是真的有自己技术积累的,不过真的很少。 | 
|  |      38JerryCha      2020-12-15 22:45:28 +08:00  13 一年以后,你的硬盘被 node_modules 塞满,弄出了 Google 级的故障 | 
|  |      39jmyz0455      2020-12-15 22:45:49 +08:00 观望 golang | 
|  |      40dream4ever      2020-12-15 22:55:01 +08:00 在传统企业做“全干工程师”,能力 + 精力有限,所以目前的业务,后端用的全是 Node.js ,倒是在考虑学习 Java,毕竟生态非常全面。 | 
|  |      41kidlj      2020-12-15 22:57:47 +08:00 Node.js 性能很好的好吧!( IO 密集型限定) | 
|  |      42imgbed      2020-12-15 23:16:33 +08:00 用 uni-app 的 uniCloud,也算是 node 吧 | 
|      43vision1900      2020-12-15 23:24:41 +08:00 用 Swift 写的服务端框架,将近两万颗星。Node 就更多了 | 
|  |      44lihongming      2020-12-15 23:54:42 +08:00 via iPhone  7 Node 是给“大前端”用的,前端不仅要负责界面,还要自己负责组装数据,自己写 API 。 相应的,后端也会比以前更靠后,要为“大前端”写供 Node 使用的底层 API,比如搜索服务、数据库服务等。基本的 CRUD 操作已经不是后端的事了,后端写的是 CRUD 请求和数据库之间的中间层。显然这对前后端的要求都变高了,一般的企业不太容易招到这样的人才。 | 
|  |      45mywaiting      2020-12-16 00:21:25 +08:00 认真说,心智负担低点的全栈选手,JS/NodeJS/Deno 还真是最好选择~~ | 
|  |      46anguiao      2020-12-16 00:42:32 +08:00 via Android 就算是全干,估计也没多少人选 Node,毕竟写后端的难点并不在于多学一门语言。 | 
|  |      47BruceLi      2020-12-16 00:49:37 +08:00 我们产品想招一个 node 后端太难了,开发物联网云端服务,面试了很多,都是擅长前端,后端基础不行,坐标西安,年底想换工作的私聊。 | 
|      48dayeye2006199      2020-12-16 02:18:17 +08:00 @wellhome python 的 django flask 糙快猛不香么 | 
|  |      49sslyxhz      2020-12-16 02:48:59 +08:00 部分后端小项目用到...大工程还是 Java | 
|  |      50henryhu      2020-12-16 06:04:04 +08:00 nodejs 不香吗? | 
|  |      51kevinwan      2020-12-16 06:19:29 +08:00 via iPhone  1 我们在疫情初期,一个同事用 nodejs 写了个服务,上去第一天就挂了,服务再也没起来过,请求量太大,然后 k8s 伸缩都来不及,超级吃内存 立马改成 go 重写了,再也没出过问题,然后我在公司内禁止了使用 nodejs,别喷,可能我们在 nodejs 上能力不够,但我只是描述了下事实 同时我们在 go 上有深入的积累,自研了框架 https://github.com/tal-tech/go-zero | 
|  |      52zjsxwc      2020-12-16 07:27:15 +08:00 via Android node 只适合中台, 光 node 原生不支持 int64 大整数, 这条就只能放弃 node 了。 | 
|  |      53ragnaroks      2020-12-16 08:42:29 +08:00 有个二维码服务用了 node.js ,请求频率也就一天几十万次,1t2g 有点吃力,后面改成 dotnet core 没管过了 | 
|  |      54dfourc      2020-12-16 08:54:00 +08:00 @ShadowPower #22 如果是浮点运算丢失精度这个怪不得 js 。。。 | 
|  |      55light000      2020-12-16 08:54:16 +08:00 via Android  1 用 node-red 做,有没有一样的大佬 | 
|      56baleeny      2020-12-16 08:57:39 +08:00 感觉中小型后端 node.js 很香啊 | 
|  |      57unclemcz      2020-12-16 09:02:58 +08:00  1 js 的性能还可以的,我学习 node 入门的时候建了一个小站,使用 expressjs,到现在已经平稳运行 4 年多,日均 pv15k,uv3k,服务器性能 1u1g,cpu 长期处于低位。 优点:性能不弱鸡,开发效率与 php 比不遑多让。 缺点:弱类型,需要约束自己的编码习惯,ts 更优。 | 
|  |      58wangyzj      2020-12-16 09:08:35 +08:00 当前端程序员想玩大前端的时候 | 
|  |      59zengming00      2020-12-16 09:09:52 +08:00 感觉你们觉得 node 不行的都还在使用连 promise 都还没有的时代的 node 技术,node 写后端确实比其它古老技术的少,因此导致网上没什么教程,即使有,那也是古老得不行的教程 | 
|  |      60pushback      2020-12-16 09:20:18 +08:00 只要你问,那就挺多(狗头) | 
|  |      61ericgui      2020-12-16 09:21:54 +08:00 via Android nodejs 挺好,你的 PV 在 100 万以内的时候,不用考虑那么多 | 
|      62zqjnew      2020-12-16 09:22:43 +08:00 via Android 单编程来说, 除了会 node 这种动态语言,还要会静态语言,即函数式编程思想 和 oop 编程思想都要有 | 
|  |      63huabinglan      2020-12-16 09:25:33 +08:00 via Android 和编译型比性能,把 nodejs 用到 CPU 密集型场景,忽略 npm 生态,好吧,我认输 | 
|  |      64mritd      2020-12-16 09:27:43 +08:00 via iPhone 我觉得 node 这东西就不该存在,我也不知道为啥😂 | 
|  |      65dartabe      2020-12-16 09:28:21 +08:00 Typescript + Express 感觉挺适合前端拓展一下的   反正我肯定加入自己技术栈 | 
|  |      67moonrailgun      2020-12-16 09:29:58 +08:00 我的后端项目: https://github.com/TRPGEngine/Server Node 给我的感觉就是内存消耗有点大,其他感觉还行。但是如果是一个性能要求比较高的应用的话,还是不要选择 Node, Java 才是你最好的选择 | 
|  |      69CFM880      2020-12-16 09:34:38 +08:00 我司 Node 转 Java 中,Node 后端,貌似不好招人 | 
|  |      70supuwoerc      2020-12-16 09:37:57 +08:00 我一个前端,帮运维写过 Node 脚本来刷数据... | 
|  |      71alan0liang      2020-12-16 09:42:29 +08:00 via Android Node 性能并不是很差: https://www.techempower.com/benchmarks/ Koa rank #244, Spring rank #284 ; https://benchmarksgame-team.pages.debian.net/benchmarksgame/fastest/javascript.html,当然跟 C 的性能还是没法比。主要是内存占用有点大,可能需要手动调一些 v8 参数。 | 
|  |      72dany813      2020-12-16 09:43:02 +08:00 为啥要限定一种语言呢,前端想玩后端,node 是首选,想再深入后端,可以再用 java go | 
|  |      74Jinnn      2020-12-16 09:50:44 +08:00 前端在学 nest, 作为前端学习后端的过渡, 对于后端没经验前端来说, nestjs 太适合学习了 | 
|  |      75rodrick      2020-12-16 09:52:26 +08:00  1 对于专业后端,java go 肯定比 node 优先级高,对于专业前端,项目需要倒腾后端,选 node 上手成本低,优先级肯定也高,抛开场合谈这些没啥用 | 
|      76kamilic      2020-12-16 09:53:56 +08:00 起码 Typescript 要上 要不然就吃屎了 亲身经历 T T | 
|  |      77Vegetable      2020-12-16 09:54:34 +08:00 因为写后端的没人只会 node,而选型的时候 node 完全没有优势,说实话我宁可选 php... 个人并不信任自己写出来的 js 代码,ts 又有点麻烦。应该是是 node 在后端届的确没有足够的声望。 | 
|  |      78Inozo      2020-12-16 09:57:40 +08:00 从 php 切到 nestjs,node+ts 无论是开发速度还是质量都很美丽 | 
|  |      79hyyou2010      2020-12-16 09:59:30 +08:00 浏览过国外小创业公司的技术栈,react+nodejs 算是一个常见组合 | 
|  |      80zy445566      2020-12-16 10:06:49 +08:00  8 我就是专职 Node.js 后端,上面一看就知道 95%是都没做过专职 Node.js 后端。 实话就是:Node.js 超级好用,做后端超级爽,这几年 JS 一年一个样,越用越爽。生态也很好,基本要什么功能都有 npm 包,node.js 这几年提升也超级大,不可同日而语了。还有就是有一个错误的观点说用其它语言写的组件,我觉得用其它语言的组件也没啥,java 也用 c++写的 mysql 啊,现在组件都支持通讯了,还跟语言挂啥钩。 还有你如果要问真正的 node.js 开发,最好在技术版块 node.js 模块发帖。程序员这个板块太大了,基本都是没开发过 node.js ,都是听别人说什么就是什么的。 | 
|  |      81Phariel      2020-12-16 10:07:38 +08:00 via iPhone TypeScript 才是业界希望🐶 | 
|  |      82component      2020-12-16 10:13:11 +08:00  1 部门自建 serverless,几乎所有人都会用到 nodejs 写接口 | 
|      83shunia      2020-12-16 10:14:46 +08:00 @alan0liang #71 你看差了吧,koa 好像是 300 多名,你发的这个是数据库组件的排名 | 
|  |      84starkwang      2020-12-16 10:29:58 +08:00  4 坐标鹅厂,每天日调用接近 10 亿的服务就是拿 Node 写的,顶峰 qps 几万是毫无压力的。 为啥要 Node 而不是其它语言?因为这是“接入层”,和前端逻辑密切相关的,一套逻辑分成前端后台两个人写,效率极低;会写 go 、java 的专业前端工程师太难招。 当然,这种做法并不适合小公司,国内前端很多,但优秀的能抗住业务的 Node.js 工程师很少,这些人都集中在大厂,不少人在前端圈子都是大佬级别。 | 
|  |      85biguokang      2020-12-16 10:30:25 +08:00  1 这个要看你是用 node 写什么了。。。 如果是写和数据库进行 curd 的那种常规 web 后端,其实和其他传统后端语言相比真的没什么优势。 如果是写高并发、I/O 密集型的服务中间件什么的,node 还是很香的。 而且由于 node 得益于 Google 的 JavaScript 引擎 Just In Time 的特性,所以 node 在冷启动方面速度是最快的,所以现在的 serverless,最适合的开发语言就是 node.js ,现在很多云平台的 serverless 服务的开发语言是优先 node | 
|  |      86leekafai      2020-12-16 10:32:55 +08:00 所以有些人一开口就是不行不好,回复之前至少说说自己写了几年 node 后端吧 五年 node 开发,node 真的过了好多个坎才走到今天这么好用,4-> 6,6 -> 8,8 -> 12,12 -> 14,给我的感觉就是要写的代码越来越少,心智负担是在下降的,我觉得很好。 网关、业务、脚本、爬虫,用 node 这么久没发现有是需要撇开 node 才能解决的问题。 但是历史包袱的原因,例如上面有人说到的精度问题,bigint 超限的要转 string 比较安全,这种确实很蛋疼。 还有就是 npm 里面包多质量不稳定,但是能想到的领域基本上都有可靠方案,精度计算,各种 driver,各种 sdk,这方面没有什么业务开发的问题。 我现在唯一想写、有写的,只有 js ts go,其他的都太罗里吧嗦。 | 
|      87durban126      2020-12-16 10:34:20 +08:00 最近在看 nestjs 感觉不错,可以试试 koajs express 都是比较轻量的 | 
|  |      88KouShuiYu      2020-12-16 10:39:16 +08:00 在小公司做广告管理系统,服务目前跑了几个月的一直 ok,感觉小公司涉及前端项目的用 node 做后端还是很适合的,js 一把嗦 | 
|      89scr      2020-12-16 10:44:43 +08:00 创业全干工程师, 后端用的 nestjs 业务基本是简单的 curd,跑测试单节点 qps 在 4 千左右; 但如果到 4 百 qps, 就能有足够的利润招专业的后端来重新写后端了; 选 nestjs 也有这部分考虑, 可以直接转 springboot | 
|      90hantsy      2020-12-16 10:46:01 +08:00 @leekafai 最大的问题就是 NPM 包的兼容性,G,F 家大公司还好。一些小的第三方,Broken 的事经常遇到,lock 文件锁定还是不错的。 | 
|  |      91AGEGG      2020-12-16 10:53:05 +08:00 用 node 时最烦的还是包管理,出现过依赖包的依赖包有问题结果安装不上的情况 | 
|  |      92catinsides      2020-12-16 10:58:52 +08:00 举手! MEAN stack 全干.   看上面的回复感觉不少人还是对 node 有偏见和误解,不要听风就是雨。 | 
|  |      93TJT      2020-12-16 11:08:56 +08:00 我司用 Node 支持了每日近亿 PV, 加上 TypeScript 说实话目前都还挺够用的. | 
|      94lonelymarried      2020-12-16 11:09:40 +08:00 自己的项目我就用 node 写,主要是速度快。发现国外很多开源的很多用 node 写啊。反而 java 很少。 | 
|      95libotony      2020-12-16 11:18:51 +08:00 业余 node 开发者(三年前 node 用的比较多,后来转 go 了 ),前段时间做了个项目,用 typescript + typeorm + express 无脑数据库代理,这种相对不复杂的场景用 node 的话开发效率高,性能瓶颈肯定不在 node 。 优点: IO 密集型场景下,性能优秀 开发效率快 npm 包数量比较大 资源占用少(以我的认知) 缺点: 成也 JS 败也 JS 且与前端共用生态。在细化的后端领域,JS 好学不代表可以上来直接用 node 做后端更不代表前端可以革后端的命,狭隘的讲前后端的知识体系有差异的,合格的 node 程序员少找。前后端通吃一定是牛逼的,我更愿意偏向于前后端都能干好的为“全干“工程师 缺少”企业级开发框架“的领军者,或者说”企业级开发框架“暂未推广开来 用不用 node 还是看场景吧 | 
|  |      96xionger      2020-12-16 11:20:58 +08:00 我用 方便好用 性能也不错 | 
|      97mingsz      2020-12-16 11:22:01 +08:00 举个手,挺好用的,容易上手,灵活,开发快,轮子也多 | 
|      99SuperManNoPain      2020-12-16 11:41:37 +08:00 @dantegg 艹 ,  node_modules 优点+1 | 
|  |      100wanguorui123      2020-12-16 11:47:23 +08:00 NodeJS 写过大型后端系统 |