系统编程学习重试怎样避免放大故障我先拆最外层 I/O 边界读取请求、调用处理、返回结果。纯计算函数仍保持同步这样测试最简单。async fn handle(req: Request) - ResultResponse, Error { Ok(process(req).await?) }每层只负责一种失败转换避免一个任务同时解析、重试和写日志。拆分后用 mock 检查取消会停在边界处。真实链路更复杂时不要为追求层数而过度抽象。