全书目录

后端市政区

第十章:Go / Rust / Ruby / PHP —— 不同工业园

2 分钟 764 字 第 10 / 962 个阅读单元

这一章里,把不同语言生态看成“不同工业园区”。有的园区追求吞吐,有的园区追求精密,有的园区追求产品迭代速度。

这一组语言生态有个共同特点:

  • 都能做后端
  • 都有成熟框架
  • 但它们的工程哲学差别极大

#Gin / Fiber / Echo —— Go 的轻量高速工业带

go
package main

import "github.com/gin-gonic/gin"

func main() {
  r := gin.Default()
  r.GET("/", func(c *gin.Context) {
    c.JSON(200, gin.H{"hello": "world"})
  })
  r.Run()
}

Go Web 框架通常适合:

  • 高并发 API
  • 基础设施服务
  • 网关
  • 微服务

其中:

  • Gin 最像“稳妥默认值”
  • Fiber 更像 “Express on Go”,性能冲得更猛
  • Echo 在“轻量”和“配套感”之间比较均衡

Go 这一带的核心心智

text
不是给你一个大而全平台
而是给你一台高效机器,再让你自己规划厂房

#Axum / Actix Web —— Rust 的高性能工业区

rust
use axum::{routing::get, Router};

async fn root() -> &'static str {
    "hello"
}

#[tokio::main]
async fn main() {
    let app = Router::new().route("/", get(root));
    let listener = tokio::net::TcpListener::bind("0.0.0.0:3000").await.unwrap();
    axum::serve(listener, app).await.unwrap();
}

Rust Web 后端适合:

  • 极高性能
  • 极高可靠性
  • 系统级基础设施

但代价是学习曲线更陡。

其中:

  • Axum 更像现代主流组合路线,基于 tower/hyper/tokio
  • Actix Web 更像成熟务实的高性能重装备方案

#Rails —— Ruby 的老牌商业区

rb
Rails.application.routes.draw do
  get "/ping", to: "health#show"
end

Rails 的核心是:

  • 约定优于配置
  • 开发效率高
  • 产品迭代快

它不是“给你一个薄 HTTP 层”,而是直接给你:

  • MVC
  • ORM
  • 路由
  • 后台能力
  • 很强的产品开发默认值

#Laravel / Symfony —— PHP 的两种大城区

Laravel 更像“高效率产品城”,Symfony 更像“企业模块化城区”。

php
Route::get('/ping', function () {
    return 'pong';
});

Laravel 强在:

  • batteries-included
  • 开发效率高
  • 产品型团队上手快

Symfony 强在:

  • 组件化
  • 企业项目组织能力
  • 长维护周期更舒服

这一章的核心判断

语言生态 更像什么
Go 轻量高速工业带
Rust 高精度重工业区
Ruby on Rails 产品创业城区
Laravel 开发效率型商业城
Symfony 企业组织型城区

默认选型建议

text
Go 默认看 Gin
Rust 默认看 Axum
Ruby 默认看 Rails
PHP 产品团队先看 Laravel
PHP 企业团队先看 Symfony