切换·Esc 返回

后端语言地图Backend Languages

后端入门
选择一种语言编写后端程序

Node.js、Python、Go、Java 和 PHP 都能编写后端,区别主要在生态、部署方式、性能需求和已有经验。新手先选择最接近当前项目的一种,做通完整请求流程,再比较其他语言。

JS / TS Python Go Java PHP
先选一门做完整项目,再横向比较

什么时候用

  • 前端已经用 JS / TS:优先选 Node.js,上下文切换最少
    沿用已经熟悉的语法
    前端app.tsx后端api.ts
    都使用 JavaScript / TypeScript,切换成本较低
  • 做 AI、自动化或数据工具:Python 的资料和库很多
    Python 的常见生态
    读取数据调用 AI 模型返回结果
    自动化、数据和 AI 库通常更丰富
  • 根据项目、部署平台和团队选择,不按排行榜追热门
    先看现实条件,再选语言
    现有项目部署平台团队经验选定一门
  • 先掌握变量、函数、异步、错误处理,再进入框架
    先会语言,再学框架
    变量与函数异步与错误框架

什么时候不用

  • 把语言当成产品能力:用户只在意功能是否稳定好用
    用户看到的是产品,不是语言
    Node.js 后端订单已创建Python 后端订单已创建
    语言不会自动让界面更好用
  • 频繁更换语言,却没有用其中一种完成完整项目
    每次都停在第一步
    Node: Hello WorldGo: Hello WorldRust: Hello World
    没有一门走到登录、数据库和部署
  • 为了“性能”过早换语言:多数小项目瓶颈不在语言
    先找到真正的慢点
    代码运行12ms数据库查询420ms
    换语言解决不了没有索引的查询
  • 复制不同语言的代码混在一个文件里:语法和运行方式并不互通
    不同语言不能直接混写
    server.jsconst user = await db.find() # JS + Python?SyntaxError
组成结构 · Anatomy
现有项目库与资料运行与部署
1现有上下文Context先看已经会什么、项目正在用什么、团队能维护什么
2生态Ecosystem确认需要的数据库、身份、AI 或任务库是否成熟且仍在维护
3运行环境Runtime确认部署平台支持的版本、启动方式、资源限制和成本
常见变体 · Variants
JavaScript / TypeScriptJS / TS
const app = express()
已有前端 JavaScript 基础时,通常能减少上下文切换
PythonPython
app = FastAPI()
AI、数据和快速原型
GoGo
http.HandleFunc(...)
需要轻量服务,且希望用静态二进制简化部署时
Java / PHPJava / PHP
Spring · Laravel
企业系统或成熟内容网站
典型使用场景
Node.js 做全栈网站
Node.js 全栈前后端共用 TypeScript
app/page.tsxapp/api/orders/route.tslib/database.ts
适合已经熟悉 JavaScript 的项目
Python 做 AI 接口
Python AI 接口接收文本并调用模型
@app.post("/summarize")async def summarize(body: Input): return await model.run(body.text)
FastAPI + Python AI 生态
Go 做独立 API 服务
Go API 服务一个轻量独立服务
二进制18 MB健康检查200 OK接口GET /health
部署单一可执行文件
Java / PHP 接手成熟项目
成熟项目沿用现有 Java / PHP 技术栈
Spring 服务订单与库存Laravel 后台内容与运营
接手项目时,可维护性比追新语言更重要