全书目录

第三十九篇:Axum 完全指南 —— Rust 类型关口宇宙

第十八章:真实项目应该怎么组织 —— 让总关能继续扩建,而不是半年后堵死

1 分钟 195 字 第 764 / 962 个阅读单元

Axum 很轻。 轻的另一面就是:

你必须主动组织结构。

一个能长大的 Axum 项目,最小可以长这样:

text
src/
├── main.rs
├── app.rs
├── state.rs
├── error.rs
├── routes/
│   ├── mod.rs
│   ├── public.rs
│   └── permits.rs
├── middleware/
│   └── auth.rs
├── extractors/
│   └── current_officer.rs
├── services/
│   └── permit_service.rs
└── tests/
    └── permits.rs

职责分工可以这样理解:

text
main.rs         -> 开关口、装配环境
app.rs          -> 组装整张 Router 地图
state.rs        -> 总关底册
error.rs        -> 标准拒签通知
routes/         -> 各个窗口入口
middleware/     -> 安检带
extractors/     -> 验货设备
services/       -> 真正处理业务的后台科室
tests/          -> 通关演练脚本

很重要的一条纪律:

handler 尽量薄。

窗口层应该主要负责:

  • 提取材料
  • 调用 service
  • 返回回执

不要让窗口自己:

  • 写 SQL
  • 跑复杂事务
  • 发消息队列
  • 编排多个外部服务
  • 写大段鉴权逻辑

不然总关会从“专业窗口”退化成“窗口兼仓库兼审计兼物流中心”。