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