关于 rust-expert-best-practices-code-review
面向 Rust 开发者的编码规范技能,适用于编写、审查和重构生产代码。规则按优先级覆盖类型安全、错误处理、API 设计、可读性与性能。
主要功能
- 01按优先级组织 Rust 规范
- 02类型安全与数据建模建议
- 03避免不必要 panic 的错误处理
- 04迭代器、格式化与可读性模式
- 05所有权与性能建议
适用场景
- 01审查 Rust 代码的安全问题
- 02重构函数与公共 API
- 03改进 Rust 错误处理
- 04提升代码清晰度与性能
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ wispbit-ai/ skills --skill rust-expert-best-practices-code-review安装后在 Claude Code 中输入/rust-expert-best-practices-code-review确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
rules/avoid-boolean-params.mdavoid-box.mdavoid-panic.mdavoid-rc.mdcalculated-field-as-method.mddecimal-comparison.mdmatch-statements-handle-all-cases.mdprefer-builder-pattern-for-complex.mdprefer-format.mdresult-error-returns.mduse-borrowed-argument-types.mduse-copied.mduse-enum-deserialization.mduse-iterator-transforms.mduse-named-placeholders.mduse-typesafe-index-wrappers.md详细介绍
Rust 专家最佳实践
简单、务实、有主见。只关注编写生产级 Rust 代码时真正重要的内容。
适用场景
在以下情况下参考这些指南:
- 编写 Rust 代码(结构体、函数、枚举、trait)
- 实现错误处理和 Result 类型
- 检查 Rust 代码中的安全性或性能问题
- 重构现有 Rust 代码库
- 设计 API 和公共接口
- 优化 Rust 代码的性能或清晰度
按优先级划分的规则类别
| 优先级 | 类别 | 影响 | 前缀 |
|---|---|---|---|
| 1 | 类型安全 | 严重 | use-typesafe-、use-enum- |
| 2 | 错误处理 | 严重-高 | result-、avoid-panic |
| 3 | API 设计 | 高 | use-borrowed-、prefer-builder- |
| 4 | 代码质量 | 中-高 | use-iterator-、prefer-format |
| 5 | 可读性 | 中 | use-named-、avoid-boolean- |
| 6 | 性能 | 中 | avoid-rc、avoid-box |
快速参考
use-borrowed-argument-types- 使用 &str、&[T]、&Path,而不是 &String、&Vec、&PathBufuse-enum-deserialization- 使用穷尽式枚举匹配,确保安全反序列化use-typesafe-index-wrappers- 封装索引类型,避免混用不同的索引result-error-returns- 在 Result 函数中使用 ? 运算符,而不是 unwrap/expectavoid-panic- 根据上下文使用 assert!、Result 或 expect,而不是 panic!use-iterator-transforms- 使用迭代器方法,而不是显式的 push 循环use-copied- 使用 .copied(),避免复杂的解引用模式prefer-format- 使用 format!,而不是手动拼接字符串prefer-builder-pattern-for-complex- 对包含 4 个或更多参数的函数使用构建器模式use-named-placeholders- 解构时使用命名占位符,而不是单独的 _decimal-comparison- 使用 .is_sign_negative(),而不是与 Decimal::ZERO 比较calculated-field-as-method- 将计算字段实现为方法,而不是结构体字段avoid-rc- 简单的所有权模式可行时,避免不必要地使用 Rcavoid-box- 没有合理理由时,不要对具体类型使用 Boxavoid-boolean-params- 用枚举或结构体替代布尔参数match-statements-handle-all-cases- 显式处理所有枚举变体,不使用兜底模式
使用方法
阅读各个规则文件,了解详细说明和代码示例:
rules/use-borrowed-argument-types.md
rules/use-enum-deserialization.md
rules/use-typesafe-index-wrappers.md
rules/result-error-returns.md
rules/avoid-panic.md
rules/use-iterator-transforms.md
rules/use-copied.md
rules/prefer-format.md
rules/prefer-builder-pattern-for-complex.md
rules/use-named-placeholders.md
rules/decimal-comparison.md
rules/calculated-field-as-method.md
rules/avoid-rc.md
rules/avoid-box.md
rules/avoid-boolean-params.md
rules/match-statements-handle-all-cases.md
每个规则文件都包含:
- 简要说明规则的重要性
- 何时使用及何时不使用该模式
- 实现要求
- 带说明的 BAD 代码示例
- 带说明的 GOOD 代码示例
- 补充背景信息和最佳实践
评论
支持 Markdown