很多人一上来就问:
- “React 和 Vue 哪个更好?”
- “Next.js 能不能替代后端?”
- “FastAPI 和 Spring Boot 谁更强?”
这几个问题之所以经常吵起来,是因为它们本来就不在同一层。
现代软件系统更像一座城市:
软件城市
│
├── 临街门店和商场外观
│ ├── UI 框架:React / Vue / Angular / Svelte / Solid / Qwik
│ └── Meta Framework:Next.js / Nuxt / Remix / SvelteKit / Astro / TanStack Start
│
├── 装修材料与施工队
│ ├── 样式体系:Tailwind CSS
│ ├── 组件方案:shadcn/ui
│ ├── 状态管理:Redux Toolkit / Zustand / Pinia
│ └── 构建工具:Vite / Webpack / Rspack / Turbopack
│
├── 政务大厅和业务楼
│ ├── JS/TS 后端:Node.js / Deno / Bun
│ ├── JS/TS 框架:Express / Fastify / NestJS / Hono / Koa / AdonisJS
│ ├── Python:FastAPI / Django / Flask / Litestar / Celery
│ ├── JVM/.NET:Spring Boot / Quarkus / Micronaut / Ktor / ASP.NET Core
│ └── 其他主流后端:Gin / Fiber / Echo / Axum / Actix Web / Rails / Laravel / Symfony
│
├── 仓库、档案馆和物流系统
│ ├── 数据库:PostgreSQL / MySQL / MongoDB
│ ├── 缓存:Redis
│ ├── 搜索:Elasticsearch / OpenSearch
│ ├── 消息与流:Kafka / RabbitMQ / NATS
│ └── 分析库:ClickHouse
│
├── 港口、电网和调度中心
│ ├── 容器:Docker
│ ├── 编排:Kubernetes
│ ├── 基础设施即代码:Terraform
│ ├── CI/CD:GitHub Actions
│ ├── Serverless:AWS Lambda / Serverless Framework
│ └── 边缘与托管:Cloudflare Workers / Vercel / Netlify
│
├── 验收、消防和监控
│ ├── 测试:Jest / Vitest / Playwright / Cypress / Pytest / JUnit
│ └── 可观测性:OpenTelemetry / Prometheus / Grafana / Sentry
│
└── 新加进来的 AI 机器人区
├── LangChain / LlamaIndex
├── Vercel AI SDK / Mastra
└── OpenAI API / Agents SDK核心判断:
| 你在选什么 | 你其实在决定什么 |
|---|---|
| UI 框架 | 门店怎么装修 |
| Meta Framework | 商场怎么招商、怎么路由、怎么进货、怎么开门营业 |
| 后端框架 | 政务大厅怎么接待请求、怎么调业务 |
| 数据层 | 档案和货物存哪 |
| 云原生 | 城市怎么部署、扩容、迁移 |
| 测试/监控 | 城市出问题时怎么发现、怎么追 |
所以整篇文档最重要的目标不是让你“背会所有框架”,而是让你知道:
每个框架到底属于哪一层,它在城市里到底扮演什么角色。