跳转到内容

后端框架怎么选

后端运行在服务器或受控运行环境中,通常负责:

  • 接收和校验请求;
  • 判断用户身份和权限;
  • 执行业务规则;
  • 读写数据库和文件;
  • 调用模型、支付、邮件等第三方服务;
  • 记录日志、限流、重试和错误。

前端可以隐藏按钮,但不能替代后端权限判断。任何改变数据或产生费用的操作,都应在服务端再次验证。

概念 作用
路由 把 HTTP 方法和 URL 对应到处理函数
控制器/处理器 接收请求,调用业务逻辑,返回响应
中间件 在请求前后做认证、日志、跨域或错误处理
服务层 放可复用的业务规则,不把所有逻辑塞进路由
数据访问层 访问数据库或外部服务
Schema/DTO 描述和校验输入输出
迁移 以可追踪方式修改数据库结构

把这些职责分开,能让测试、排错和后续修改更容易。

语言/生态 框架 适合场景
Node.js / TypeScript Express、Fastify、NestJS Web API、实时服务、前后端同语言
Python FastAPI、Django、Flask AI 服务、自动化、数据和 Web 应用
Go 标准库、Gin、Fiber 高并发 API、命令行和易部署服务
Java / Kotlin Spring Boot 企业系统、复杂业务和长期团队维护
C# ASP.NET Core 企业 API、Microsoft 生态、跨平台服务
PHP Laravel、Symfony 内容站、管理后台和传统 Web 部署
Ruby Rails 需要快速迭代的数据库型 Web 应用

框架名字不等于架构。相同框架既可以写得清楚,也可以写成难以维护的“大文件”。

  • 前端已经使用 TypeScript:Node + Fastify/Express 是自然的起点;
  • 想做 AI、自动化或数据处理:Python + FastAPI 资料和库较多;
  • 需要简单部署、高性能服务:可以了解 Go;
  • 已有企业团队和 Java/.NET 经验:沿用团队生态通常更划算;
  • 需要快速做内容和后台:Laravel、Django 或 Rails 都可以从官方教程开始。

先实现一个“健康检查 + 创建 + 查询”的小 API,再接认证和数据库;不要一开始就把消息队列、微服务和复杂权限全部加上。

GET /health → 返回服务是否正常
POST /projects → 校验用户并创建项目
GET /projects/:id → 检查权限后返回项目

每个接口都应说明认证方式、输入字段、成功响应、错误状态、幂等性和速率限制。

  • 密钥只在服务端或安全存储中使用;
  • 输入、上传文件和 URL 都要校验;
  • 数据库查询使用参数化方式,避免注入;
  • 生产环境关闭详细堆栈回显;
  • 记录请求 ID、错误上下文和耗时,但脱敏隐私;
  • 为外部服务设置超时、重试上限和降级行为。