1
slowgen Aug 26, 2022 选大而全的。
大而全框架带来的是一整套的成熟的解决方案,不需要自己东拼西凑搞半成品,比如当年屌炸天的 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 。 |
2
xieren58 Aug 26, 2022
个人使用, 感觉 Moleculer 比 NestJS 好用.
|
3
hutoer Aug 27, 2022
我也感觉 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 就很好了,简单够用,持有成本低(硬件成本、部署维护成本)。 |
4
libook Aug 29, 2022
选型要看项目时下的需求可状况,没有一招打天下的框架,而且随着需求变化、项目发展,未来还可能会换架构。
有时候简单为服务我会直接用 Node.js 官方 HTTP API 手撸。 复杂点的我以前习惯用 koa 组合各种三方或自造的组件,来应对框架自带组件不能满足需求需要自己造组件的尴尬场景。 个人认为现在大趋势是 Service Mesh ,也就是说框架会越来越弱化除了业务逻辑以外的部分,那些部分会使用云原生中间件和服务治理架构来解决。 |
5
zhennann Sep 9, 2022 如果后端主要是 CRUD+权限,那么可选框架不要太多。如果后端还要做流程审批,那么,java 端选 Activiti ,node 端选 CabloyJS
|