#误区 1:把 Rocket 当成“Rust 版 Flask”
不对。
它当然有易读的声明式路由,但 Rocket 的核心辨识度不在“语法亲切”,而在:
- request guards
- managed state
- fairings
- sentinels
- 类型驱动检查
它比“轻量小框架”更像一套正式控制塔规程。
#误区 2:所有全局逻辑都塞进 fairing
不对。
Rocket 官方就明确提醒过:很多事情 guard 更合适,fairing 不应变成万能垃圾桶。
如果某个逻辑本质上是:
- 某些路由要检查
- 某些路由不要检查
- 跟请求上下文密切相关
那往往更适合 request guard,而不是一把梭 fairing。
#误区 3:把 handler 写成总控制室
如果 handler 里全是:
- 拆 header
- 拆 cookie
- 拆 token
- 判权限
- 判角色
- 查 state
- 再做业务
那就说明你没有把 guard 用好。
Rocket 的好处就在于:
让 handler 尽量只负责真正的发射执行。
#误区 4:所有共享状态都放成粗锁
State<T> 很方便,但不是叫你把整个系统都塞进一个大 Mutex<HashMap<...>>。
真实项目里更合理的是放:
- 数据库池
- 客户端
- 原子计数器
- 轻量 service handle
- 配置对象
而不是让全塔所有发射任务都去争抢一个总柜钥匙。
#误区 5:觉得 Rocket 的声明式路由只是“语法糖”
不是。
它不只是省几行代码。 它是在把“发射窗口”和“检查要求”写进类型系统和函数签名里。
#误区 6:忽视旧教程与现代主路径的区别
Rocket 0.5 稳定以后,async 路线已经是现代主路径。 看老资料时要小心,不要把旧时代心智当成 2026 主线。