V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
hoseawu
V2EX  ›  Node.js

关于未来,哪个框架会成为最流行的?

  •  
  •   hoseawu · 2022-08-26 17:00:40 +08:00 · 5740 次点击
    这是一个创建于 849 天前的主题,其中的信息可能已经有所发展或是发生改变。
    本人用过 express ,nestjs ,目前工作是做 nestjs 开发的。
    很想知道行业趋势将如何去抉择,什么框架会成为最流行的呢?
    就本人用过的框架而言
    nestjs+ts 的开发非常舒服,但是确实对于一个小项目来说过于繁琐了。
    express 倒是方便,但也确实大项目写到后期维护很是问题。
    5 条回复    2022-09-09 12:30:34 +08:00
    shuimugan
        1
    shuimugan  
       2022-08-26 18:25:11 +08:00   ❤️ 2
    选大而全的。

    大而全框架带来的是一整套的成熟的解决方案,不需要自己东拼西凑搞半成品,比如当年屌炸天的 Ruby on Rails ,指导了多少框架,前端工程化惊为天人,缓存利用到极致,ORM 设计更是被现在的框架各种抄。简陋的框架只会让别人去拼凑,最佳实践都很少,也不利于开阔视野。看看 python web 那些从 Flask 转到 Django 的就懂了,还有现在的 FastAPI ,流行度比 Sanic 高多了。

    排除单独吹 Serverless 的,因为各大云厂商 Serverless 都支持跑 docker 镜像,自己拿 pkg 打成单个可执行丢 slim/alpine 镜像就搞定了,也就几十 MB ,冷启动快得一批,而且 Deno 接下来重点也在兼容 Node.js ,到时又会多一个打包成可执行文件的方案。再看看云厂商那蹩脚的 layer 层设计,让你把 node_modules 放那里,一堆碎片文件妨碍启动速度,不靠谱,狗看了都摇摇头,搞不好还是网络加载的。

    单独面向微服务的也可以排除了,比如 Moleculer ,这年头微服务直接上 k8s 然后纯 http 互相调用,无状态简单得一批,可观察性也好,工具链也成熟,还能精细控制流量。

    排除 Midway.js ,阿里的开源大家都懂的,三年前我第一个 Node.js 项目用它就碰到一些弱智 bug ,懒得再看了。

    排除没用 TypeScript 的,Sails/Hapi 拜拜。

    AdonisJS 的纯 TypeScript 版出来太晚了,挺像 Laravel ,PHP 转型到 Node.js 的会喜欢,不过很多 PHP 都觉得转 go 会更好。

    所以没什么好选的了,早知道,还是原道,哦,还是 NestJS 。
    xieren58
        2
    xieren58  
       2022-08-26 23:06:03 +08:00
    个人使用, 感觉 Moleculer 比 NestJS 好用.
    hutoer
        3
    hutoer  
       2022-08-27 11:23:55 +08:00
    我也感觉 Moleculer 比 NestJS 好用。

    容易上手的微服务体系
    通过 MQ (多种)支持事件驱动、解耦服务、负载均衡等
    支持服务注册 /发现、日志、跟踪、度量、缓存等
    容错功能(熔断,限流,重试,超时,回退)
    自带 API 网关
    自带 CRUD 模块,可以快速产生 RESTful API
    插件化体系,常用模块都有集成
    支持多语言:javascript/typescript (主要开发语言)、java (完成度很高)、其他语言(不成熟,python go c# 等 client 可以用)

    其实大多数团队的项目都是小项目(特指资源需求),2-3 台普通服务器( 32 核、64G 内存这种)就搞定了。一定要硬上 k8s ,就像 https://twitter.com/dexhorthy/status/856639005462417409

    k8s 用了 5 年了吧,几十台服务器,几百个服务,部署调优还是很耗费时间。小项目(服务器要求小于 10 台),我觉得 Moleculer + docker compose 就很好了,简单够用,持有成本低(硬件成本、部署维护成本)。
    libook
        4
    libook  
       2022-08-29 16:06:51 +08:00
    选型要看项目时下的需求可状况,没有一招打天下的框架,而且随着需求变化、项目发展,未来还可能会换架构。

    有时候简单为服务我会直接用 Node.js 官方 HTTP API 手撸。

    复杂点的我以前习惯用 koa 组合各种三方或自造的组件,来应对框架自带组件不能满足需求需要自己造组件的尴尬场景。

    个人认为现在大趋势是 Service Mesh ,也就是说框架会越来越弱化除了业务逻辑以外的部分,那些部分会使用云原生中间件和服务治理架构来解决。
    zhennann
        5
    zhennann  
       2022-09-09 12:30:34 +08:00   ❤️ 1
    如果后端主要是 CRUD+权限,那么可选框架不要太多。如果后端还要做流程审批,那么,java 端选 Activiti ,node 端选 CabloyJS
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2677 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 20ms · UTC 15:14 · PVG 23:14 · LAX 07:14 · JFK 10:14
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.