1. 观察
本文讨论的技术栈,只局限于后端开发语言和框架,不涉及数据库,运行基础设施,CICD 等话题。
最近观察到了一个技术栈的趋势,这里整理一下。这个趋势就是,使用 Javascript / Node 全栈的项目越来越多。
关注的一些新类型的应用,包括 Headless CMS,flow base programming,低代码,BaaS 等,发现新一代应用很多用的都是 Javascript / Node 全栈。
举几个 🌰:
项目 | 分类 | 前端 | 后端 | Github Stars |
---|---|---|---|---|
Medusa | 电商 | React/Radix | Express | 20.7k |
Node-RED | FBP | / | Express | 17.7k |
n8n | FBP | Vue/element-plus | Express | 35.4k |
Budibase | 低代码 | Svelte | Koa | 19.5k |
ToolJet | 低代码 | React | NestJS | 25.2k |
Strapi | CMS | React/Radix | Koa | 57.5k |
Ghost | CMS | Ember | Express | 44.5k |
Directus | CMS | Vue | Express | 23.9k |
Supabase | BaaS | React/Radix | Fastify/Next.js | 60k |
发现基于他们二次开发的话,就要熟悉 Node 技术栈了。
2. 如何选择
那么,国内常用的技术栈如何选择呢?我说一下个人观点,这个观点是架空的,不考虑现有团队的经验,只局限于 Web 开发 / 微服务领域。
2.1. Java / Spring
- 适合传统的 toB 项目,为大企业 / 机构定制软件,外包
- 适合大团队的协作,Spring 已经是事实上的标准了
- 采用前后端分离的方式,前端 React / Vue / Angular
- 好招人,并且招的人套路比较一致
国内 Java 还是当红炸子鸡,国外新项目 Java 越来越少了。但是国内卷 Java 的人太多,不用担心过时,十年也不过时。
下一步 Java 21 会成为新项目的选择。
2.2. Go
- 适合自运营的创业项目
- 省资源
- 前后端分离
- 语言比较简单易学,好上手,出活快
- 比较好招人,也可以招其他语言的开发人员转 Go
从语言层面就是支持并发的,所以不管是标准库,还是社区库,大家都基于 goroutine,这点太好了。
2.3. Node 全栈
- 适合小团队,独立开发者,MVP
- 可以认为是 PHP 的继任者了
- 一个人负责前后端
- TypeScript 很棒
- 有很多支持 Node 的云平台,小项目的话,部署非常方便
- 缺少标准套路,各个项目差异性较大
- 不好招人,前端转后端的需要一个思路的较大转变
目前还是适合小项目,但是我们做的很多项目,有那么大么?
2.4. 其他
Python,.Net 国内用的比较少,国外用的非常多。
PHP 永远的神,不解释。