rust-expert-best-practices-code-review について
Rust の本番コードを書く、レビューする、リファクタリングする開発者向けのコーディングスキルです。型安全性、エラー処理、API 設計、可読性、性能のルールを優先度別にまとめています。
主な機能
- 01優先度別の Rust ベストプラクティス
- 02型安全な API とデータモデルの指針
- 03不要なパニックを避けるエラー処理
- 04イテレーター、書式設定、可読性のパターン
- 05所有権と性能に関する提案
活用シーン
- 01Rust コードの安全性レビュー
- 02関数や公開 API のリファクタリング
- 03Rust のエラー処理の改善
- 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 コード(構造体、関数、列挙型、トレイト)を書くとき
- エラー処理や 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- &String、&Vec、&PathBuf ではなく、&str、&[T]、&Path を使用しますuse-enum-deserialization- 安全にデシリアライズできるよう、網羅的な列挙型マッチングを使用しますuse-typesafe-index-wrappers- インデックス型をラップして、異なるインデックスの混同を防ぎますresult-error-returns- Result を返す関数では、unwrap/expect ではなく ? 演算子を使用しますavoid-panic- 状況に応じて panic! ではなく、assert!、Result、または expect を使用しますuse-iterator-transforms- 明示的な push ループではなく、イテレーターメソッドを使用しますuse-copied- 複雑な間接参照パターンを避けるために .copied() を使用しますprefer-format- 手動での文字列連結ではなく、format! を使用しますprefer-builder-pattern-for-complex- 4 つ以上のパラメーターを持つ関数では、ビルダーパターンを使用しますuse-named-placeholders- 分割代入で単独の _ ではなく、名前付きプレースホルダーを使用しますdecimal-comparison- Decimal::ZERO との比較ではなく、.is_sign_negative() を使用しますcalculated-field-as-method- 計算フィールドは構造体のフィールドではなく、メソッドとして実装しますavoid-rc- よりシンプルな所有権パターンで対応できる場合は、不要な Rc を避けますavoid-box- 正当な理由がない限り、具象型に Box を使用しないでくださいavoid-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 対応