有多少用 nodejs 写后端的,请举手?
最近玩儿弄了下 koa, 用着还是挺香的,直聘上搜了下,貌似后端的 jd 上很少有对 node 的需求,无外乎 java,php,Python,go 。
那么问题来了,node 只是前端构建工具用的多吗?
最近玩儿弄了下 koa, 用着还是挺香的,直聘上搜了下,貌似后端的 jd 上很少有对 node 的需求,无外乎 java,php,Python,go 。
那么问题来了,node 只是前端构建工具用的多吗?
光 JS 自己是远远不够的,还需要 TypeScript 和多方生态外部加持。
全流程统一语言,降本增效,老板之友。
但对全流程一知半解的还是别轻易搞了,到时候资料都不知道咋搜
——————————–
@IssacTomatoTan
现在写 hello world 的玩具,各个语言都没有太大差别。
Nestjs 中使用 Mongoose 操作 Mongo,我反而觉得 OOP 是一种束缚了,之前我写过一个项目,感觉 JS 调用 Mongoose 真的不错。
那你前面说的“NestJS 对于 OOP 特别 是 Java 程序员更友好,毕竟后端的生态圈子,换了一门语法或者框架,一样可以轻松套上去用。”有屁用?
这玩意的尴尬点在于:
1. 不好招人,会写 JS,不代表就会后端,比起招 Java 后端、Go 后端,合格的 Node.js 后端要更难找。
2. 性能不行,或者说在大多数场景下性能都不太行。
中大型公司可能有些部门的有些产品会用到,但占比比较小,外包公司基本用 Java,初创型公司现在首选都是 Golang 或者 Java 。现在还有用 Node.js 基本都是前几年看 Node.js 火热选了的,船大难调头,还有一小部分是真的有自己技术积累的,不过真的很少。
相应的,后端也会比以前更靠后,要为“大前端”写供 Node 使用的底层 API,比如搜索服务、数据库服务等。基本的 CRUD 操作已经不是后端的事了,后端写的是 CRUD 请求和数据库之间的中间层。显然这对前后端的要求都变高了,一般的企业不太容易招到这样的人才。
Node 给我的感觉就是内存消耗有点大,其他感觉还行。但是如果是一个性能要求比较高的应用的话,还是不要选择 Node, Java 才是你最好的选择
个人并不信任自己写出来的 js 代码,ts 又有点麻烦。应该是是 node 在后端届的确没有足够的声望。
实话就是:Node.js 超级好用,做后端超级爽,这几年 JS 一年一个样,越用越爽。生态也很好,基本要什么功能都有 npm 包,node.js 这几年提升也超级大,不可同日而语了。还有就是有一个错误的观点说用其它语言写的组件,我觉得用其它语言的组件也没啥,java 也用 c++写的 mysql 啊,现在组件都支持通讯了,还跟语言挂啥钩。
还有你如果要问真正的 node.js 开发,最好在技术版块 node.js 模块发帖。程序员这个板块太大了,基本都是没开发过 node.js ,都是听别人说什么就是什么的。
为啥要 Node 而不是其它语言?因为这是“接入层”,和前端逻辑密切相关的,一套逻辑分成前端后台两个人写,效率极低;会写 go 、java 的专业前端工程师太难招。
当然,这种做法并不适合小公司,国内前端很多,但优秀的能抗住业务的 Node.js 工程师很少,这些人都集中在大厂,不少人在前端圈子都是大佬级别。
如果是写和数据库进行 curd 的那种常规 web 后端,其实和其他传统后端语言相比真的没什么优势。
如果是写高并发、I/O 密集型的服务中间件什么的,node 还是很香的。
而且由于 node 得益于 Google 的 JavaScript 引擎 Just In Time 的特性,所以 node 在冷启动方面速度是最快的,所以现在的 serverless,最适合的开发语言就是 node.js ,现在很多云平台的 serverless 服务的开发语言是优先 node
业务基本是简单的 curd,跑测试单节点 qps 在 4 千左右;
但如果到 4 百 qps, 就能有足够的利润招专业的后端来重新写后端了;
选 nestjs 也有这部分考虑, 可以直接转 springboot
优点:
IO 密集型场景下,性能优秀
开发效率快
npm 包数量比较大
资源占用少(以我的认知)
缺点:
成也 JS 败也 JS 且与前端共用生态。在细化的后端领域,JS 好学不代表可以上来直接用 node 做后端更不代表前端可以革后端的命,狭隘的讲前后端的知识体系有差异的,合格的 node 程序员少找。前后端通吃一定是牛逼的,我更愿意偏向于前后端都能干好的为“全干“工程师
缺少”企业级开发框架“的领军者,或者说”企业级开发框架“暂未推广开来
用不用 node 还是看场景吧