首先为什么使用 nodejs?
就像某人说的:别人选择用 nodejs 或 Golang,是根据业务,而我选择 nodejs 是因为我仅仅会写js...
在入坑 nodejs 写后端前,肯定会去谷歌一番 node 的性能咋样啦,类似 nodejs vs php Or vs go 性能测试等;搜索结果呢会有许多说它性能很好的,也有说性能不足php的,而且各自都有自己的性能测试...
然后也会发现很多有趣的便见,下面罗列一下:
一. nodejs 因为 js 这门超级灵活的语言不适合写大型项目
解决方案: 上 typescript
二. nodejs 性能不行,并发上不来,延迟大。这里的性能应该指的是 cpu 密集型计算。
解决方案:水平扩展机器 + 将 cpu 密集型计算放到另一个服务上转化为网络 io 调用啊(具体这个服务怎么写,仁者见仁)
三. 数据库并发上不来。
解决方案:这个和 nodejs 没啥关系吧......
全网搜来搜去,大概就上面的问题。看完,用 nodejs 写后端还是问题么
再来列举 nodejs 写后端的好处吧(仅限于对前端来说) 一. 学习进步,更上一层楼;了解后端,才能更好写前端嘛 二. 给了前端同学一个轻松写后端的机会 三. 前后端类型/代码共享 四. 天然的 web 支持(比如用 websocket 超简单)
总结来说,写后端,如果你熟悉 php,那就 php,听说nodejs 好,噗嗤噗嗤的去学 js,es6, npm,webpack, babel等等的,在没用 nodejs 写业务前,就已经精疲力尽了...
当我说 nodejs 适合写后端的时候,是因为我仅仅会前端。不想去学go写后端,因为在用go写后端前,学习go 已经让我精疲力尽了。
不熟悉才会说不合适,没有绝对的不行,其实都可以解决问题。
你说的没错,性能说到底最强就是cpu核数的aio。现在大家都是这个模式,性能差异不大。 接下来就是语言本身了,bs 前端天生javascript,后台我还瞎扯什么,一样的语法不香吗
说不行的基本是没怎么用过,自己在瞎歪歪。PHP性能好吗?Python性能好吗?不照样开发系统。 黑子喜欢用的套路基本就是: 说性能不好。拿出v8怼回去后又说并发不好,你拿出事件模型怼回去又说类型不好,你拿ts怼回去又说不适合开发大项目,你说任何项目对nodejs来说都是小项目,又说生态不好,你拿npm怼回去又说npm依赖一大堆。。。 你可能听到很多人说nodejs不行,但我告诉你,这是他们心虚,害怕nodejs抢他们饭碗而已
写后端不仅仅是 CRUD,如何多人写好 CRUD也是一门艺术啊......
知乎上看到一句话,写后端需要考虑和研究的东西有很多:
8802036E-650D-42A3-AA14-B376AF2B2E5E.jpeg
希望以后在 nodejs 社区,看到些更加深入点的这方面的思考和分享
@suhaotian 这个属于(后端)架构,而非后端(服务)。 图片里说的,我感觉要么是老司机,要么是老火车司机。
说个场景, nodejs/go的后端(微)服务,容器化部署时,一个普通云节点起数十个pod没啥问题吧。如果换成是java,能行么。 大家都承认nodejs生态比java差远了。