用途:面向 Rust 系统编程的实践模式集合,帮助编写安全、可维护的 Rust 代码。
主要能力:
- 所有权与借用:示例展示借用(&T、&mut T)与所有权转移(move)的区别,建议优先借用,仅在必要时使用 Clone。
- 错误处理:使用 thiserror 定义错误枚举,配合 ? 运算符传播;建议库用 thiserror、应用层用 anyhow,生产代码避免 .unwrap()。
- Trait 与泛型:以 Repository trait 为例,展示关联类型与异步方法,用于抽象与可测试性。
- 异步模式:使用 tokio 的 Semaphore 与 futures 的 buffer_unordered 实现有界并发;提供优雅关闭示例(监听 Ctrl+C 后 shutdown_timeout)。
- Builder 模式:为复杂配置结构体提供链式构建。
- 反模式与检查表:列出库代码中使用 unwrap/expect、无谓克隆、跨 .await 持有 MutexGuard、滥用 Arc<Mutex<Vec<T>>>、未记录 unsafe 不变量、Result 函数缺少 #[must_use] 等问题;检查表涵盖错误类型、无 unwrap、最小化克隆、有界并发、trait 抽象、unsafe 安全不变量文档、Builder 模式与 Clippy 检查。
使用方式:资料以代码示例形式给出,可直接参考其中的函数签名与模式;示例涉及 thiserror、sqlx、tokio、futures、reqwest 等依赖,具体安装与版本未提供。
适用场景:Rust 后端服务、异步并发任务、数据库访问层抽象、配置构建等系统编程场景。
限制:资料未提供完整项目结构、依赖版本、运行环境要求或性能数据;部分示例(如 graceful_shutdown 中 handle.shutdown_timeout)的用法需结合具体运行时版本确认。