全书目录

后端市政区

第十章: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