全书目录

第四十四篇:Rocket 完全指南 —— 火箭发射控制塔宇宙

第二章:为什么 Rocket 会存在 —— 因为高安全发射不能靠值班员临场发挥

1 分钟 359 字 第 811 / 962 个阅读单元

Web 开发里有一种常见痛点:

  • 路由散
  • 参数校验散
  • 权限判断散
  • 状态共享方式混乱
  • 错误处理风格不统一
  • 代码里到处是“先判断这个再判断那个”的流水账

在小项目里,问题不大。

可一旦系统变成真正的业务发射场:

  • 有鉴权
  • 有配置
  • 有共享状态
  • 有数据库
  • 有多种输入格式
  • 有严格失败路径
  • 有异步调用和大量并发

你就会发现,真正可怕的不是“不会写 handler”。

真正可怕的是:

每个 handler 都在重复做不同版本的发射前检查。

Rocket 的回答非常直接:

把“发射前检查”变成框架第一等公民。

也就是:

  • 路由声明进属性宏
  • 参数提取进类型
  • 请求检查进 request guard
  • 共享状态进 managed state
  • 全局挂钩进 fairing
  • 失败出口进统一错误响应

于是 handler 可以越来越像:

text
“所有发射前条件都满足后,真正执行这次发射任务”

而不是:

text
“先 if 一堆,再 match 一堆,再拆 header/body/path/query,再处理业务”