mcpField
R
rust-best-practices

rust-best-practices

github.com/pedronauck开发647278 次安装1 天前更新
代码仓库

关于 rust-best-practices

面向 Rust 项目开发的技能,按主题提供代码维护指南。它强调遵循现有 crate 设计与 MSRV,并根据改动选择相关参考资料和检查项。

主要功能

  1. 01按主题分类的 Rust 参考
  2. 02所有权与错误处理指南
  3. 03异步及同步并发实践
  4. 04测试、Lint 与文档指南

适用场景

  1. 01按项目约定审查 Rust 改动
  2. 02选择错误处理与所有权模式
  3. 03检查并发和取消行为
  4. 04确定适用的测试与 Lint 命令

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/pedronauck/skills --skill rust-best-practices

安装后在 Claude Code 中输入/rust-best-practices确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

references/
async-and-concurrency.md
clippy-and-linting.md
coding-style.md
concurrency-sync.md
documentation.md
error-handling.md
ownership-and-pointers.md
performance.md
testing.md
traits-and-generics.md

详细介绍

Rust 最佳实践

使用现有的 crate 设计、edition、rust-toolchain.toml 和 Cargo.toml 中的 rust-version(MSRV)。参考示例可能使用较新的功能:采用前请确认其受支持;不要仅为遵循示例而升级工具链或添加 crate。

阅读与所更改的 Rust 问题相关的参考文档。局部修改不需要涵盖每个类别、引入新的测试框架或审查整个工作区。

主题参考文档适用场景
编码风格references/coding-style.md命名、导入、迭代器、注释、字符串处理、宏
错误处理references/error-handling.mdResult、Option、?、thiserror、anyhow、自定义错误、异步错误
所有权与指针references/ownership-and-pointers.md生命周期、借用、智能指针、Pin、Cow、内部可变性
Trait 与泛型references/traits-and-generics.mdTrait 设计、分派、GAT、密封 Trait、类型状态模式
异步与并发references/async-and-concurrency.mdTokio、通道、流、关闭、运行时配置、异步 Trait
同步并发references/concurrency-sync.md原子操作、Mutex、RwLock、锁顺序、Send/Sync、内存顺序
测试references/testing.md单元/集成/文档测试、快照、proptest、mockall、基准测试、模糊测试
性能references/performance.md性能分析、火焰图、克隆、栈与堆、迭代器、内存分配
Clippy 与 Lintreferences/clippy-and-linting.mdClippy 配置、关键 lint、工作区设置、#[expect] 与 #[allow]
文档references/documentation.md文档注释、rustdoc、文档 lint、覆盖率检查清单

工程基本要求

  • 有意地借用或转移所有权;需要独立所有权时再克隆。优先选择清晰的所有权处理方式,而非依据数值大小规则或避免所有内存分配。
  • 使用 Result 处理可能失败的操作,并保留有用的错误上下文。仅在违反程序员不变量时使用 panic/assertion;对外部输入进行验证,并返回可恢复的错误。
  • 错误类型、分派方式和依赖项应符合现有的公开契约。thiserror、anyhow、Tokio 和第三方同步 crate 都是可选方案,并非必须添加。
  • 缩短锁的持有时间,维持锁顺序,并考虑取消、关闭和生成任务的所有权。不要在 .await 期间持有同步锁。
  • 将 Send/Sync 约束和原子顺序视为正确性属性。只有具备有效的同步依据时,才选择较弱的内存顺序;进行以性能为导向的重写前先做基准测试。
  • 在负责维护相应不变量的测试套件中添加行为测试。只有在契约或风险需要时,才添加类型级、属性、模糊、快照或基准测试。
  • 运行仓库要求的、适用范围内的格式化、Lint 和测试命令;复用有效的验证结果。是否运行整个工作区/所有功能,以及文档覆盖率规则,遵循项目政策。检查该 crate 实际支持的功能组合。

评论

支持 Markdown