code-quality について
Rust 開発者向けのコード品質スキルです。クリーンコードの原則と実用的な品質ゲートを組み合わせ、フォーマット、Lint、セキュリティ監査、カバレッジ、ドキュメント、依存関係を扱います。
主な機能
- 01フォーマットと Clippy のチェック
- 02セキュリティと依存関係の監査
- 03カバレッジとドキュメントの目標
- 04Rust のエラー処理と非同期処理の指針
- 05クリーンコードの原則とアンチパターン
活用シーン
- 01Rust ワークスペースの品質ゲート設定
- 02Rust コードの保守性に関する問題のレビュー
- 03依存関係の利用状況と重複の確認
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ d-o-hub/ rust-self-learning-memory --skill code-qualityインストール後、Claude Code で/code-qualityを入力して読み込まれたか確認します。
同梱ファイルquality-dimensions.md
詳細
コード品質
Rust コードの品質とクリーンコード開発のための統一スキルです。
クイックコマンド
./scripts/code-quality.sh fmt # Format check
./scripts/code-quality.sh clippy --workspace # Lint with clippy
./scripts/code-quality.sh audit # Security audit
./scripts/code-quality.sh check # Run all quality gates
./scripts/quality-gates.sh # Full gates (coverage 90%)
品質ゲート
| チェック | コマンド | 目標 |
|---|---|---|
| フォーマット | ./scripts/code-quality.sh fmt | 100% 準拠 |
| リント | ./scripts/code-quality.sh clippy --workspace | 警告ゼロ |
| 監査 | cargo audit | 既知の脆弱性がないこと |
| カバレッジ | cargo llvm-cov --html | >=90% |
| ドキュメント | cargo doc --no-deps | すべての公開 API |
Rust 品質の各側面
| 側面 | 着眼点 |
|---|---|
| 構造 | ファイルは500 LOC未満、明確なモジュール構成 |
| エラー処理 | カスタム Error、Result、? 演算子(unwrap は使わない) |
| 非同期処理 | CPU 処理には spawn_blocking を使用し、非同期処理内でブロックしない |
| テスト | >=90% のカバレッジ、AAA パターン、cargo nextest と doctests |
| セキュリティ | パラメーター化 SQL、環境変数、ハードコードされたシークレットを使わない |
クリーンコードの原則
SOLID:単一責任、オープン・クローズド、リスコフの置換、インターフェース分離、依存性逆転
DRY/KISS/YAGNI:共通コードを抽出し、シンプルな解決策を選び、今必要なものを構築する
アンチパターン
| 問題 | 対策 |
|---|---|
| clone の過剰な使用 | 借用または Arc を使用する |
| 不要な unwrap | ? 演算子を使用する |
| 深いネスト | メソッドを抽出する |
| 大きな関数 | 分割する(<50 LOC) |
| デッドロック | .await の前にロックを解放する |
依存関係の監視
cargo tree -d | grep -cE "^[a-z]" # Count duplicates (target: <100)
cargo machete && cargo shear # Find unused deps
コードレビューの出力形式
# Code Quality Report
Score: X/100 | Critical Issues: N | Warnings: M
- Structure: [Status] | Error Handling: [Status] | Testing: [Status]
1. [Issue] - File:line - Fix: [Recommendation]
参考資料
quality-dimensions.md、ADR-036(依存関係の重複排除)、ADR-032(ディスク容量)
コメント
Markdown 対応