jpskill.com
🛠️ 開発・MCP コミュニティ

coding-guidelines

Rustのコーディング規約やベストプラクティスについて、命名規則、フォーマット、コメントの書き方など、コードレビューで役立つ情報を分かりやすく提供し、より高品質なRustコード作成を支援するSkill。

📜 元の英語説明(参考)

Use when asking about Rust code style or best practices. Keywords: naming, formatting, comment, clippy, rustfmt, lint, code style, best practice, P.NAM, G.FMT, code review, naming convention, variable naming, function naming, type naming, 命名规范, 代码风格, 格式化, 最佳实践, 代码审查, 怎么命名

🇯🇵 日本人クリエイター向け解説

一言でいうと

Rustのコーディング規約やベストプラクティスについて、命名規則、フォーマット、コメントの書き方など、コードレビューで役立つ情報を分かりやすく提供し、より高品質なRustコード作成を支援するSkill。

※ jpskill.com 編集部が日本のビジネス現場向けに補足した解説です。Skill本体の挙動とは独立した参考情報です。

⚡ おすすめ: コマンド1行でインストール(60秒)

下記のコマンドをコピーしてターミナル(Mac/Linux)または PowerShell(Windows)に貼り付けてください。 ダウンロード → 解凍 → 配置まで全自動。

🍎 Mac / 🐧 Linux
mkdir -p ~/.claude/skills && cd ~/.claude/skills && curl -L -o coding-guidelines.zip https://jpskill.com/download/9248.zip && unzip -o coding-guidelines.zip && rm coding-guidelines.zip
🪟 Windows (PowerShell)
$d = "$env:USERPROFILE\.claude\skills"; ni -Force -ItemType Directory $d | Out-Null; iwr https://jpskill.com/download/9248.zip -OutFile "$d\coding-guidelines.zip"; Expand-Archive "$d\coding-guidelines.zip" -DestinationPath $d -Force; ri "$d\coding-guidelines.zip"

完了後、Claude Code を再起動 → 普通に「動画プロンプト作って」のように話しかけるだけで自動発動します。

💾 手動でダウンロードしたい(コマンドが難しい人向け)
  1. 1. 下の青いボタンを押して coding-guidelines.zip をダウンロード
  2. 2. ZIPファイルをダブルクリックで解凍 → coding-guidelines フォルダができる
  3. 3. そのフォルダを C:\Users\あなたの名前\.claude\skills\(Win)または ~/.claude/skills/(Mac)へ移動
  4. 4. Claude Code を再起動

⚠️ ダウンロード・利用は自己責任でお願いします。当サイトは内容・動作・安全性について責任を負いません。

🎯 このSkillでできること

下記の説明文を読むと、このSkillがあなたに何をしてくれるかが分かります。Claudeにこの分野の依頼をすると、自動で発動します。

📦 インストール方法 (3ステップ)

  1. 1. 上の「ダウンロード」ボタンを押して .skill ファイルを取得
  2. 2. ファイル名の拡張子を .skill から .zip に変えて展開(macは自動展開可)
  3. 3. 展開してできたフォルダを、ホームフォルダの .claude/skills/ に置く
    • · macOS / Linux: ~/.claude/skills/
    • · Windows: %USERPROFILE%\.claude\skills\

Claude Code を再起動すれば完了。「このSkillを使って…」と話しかけなくても、関連する依頼で自動的に呼び出されます。

詳しい使い方ガイドを見る →
最終更新
2026-05-18
取得日時
2026-05-18
同梱ファイル
1

📖 Skill本文(日本語訳)

※ 原文(英語/中国語)を Gemini で日本語化したものです。Claude 自身は原文を読みます。誤訳がある場合は原文をご確認ください。

Rust コーディング規約 (50のコアルール)

命名 (Rust固有)

ルール ガイドライン
get_ プレフィックスは不要 fn name()fn get_name() ではない
イテレータの慣例 iter() / iter_mut() / into_iter()
変換の命名 as_ (安価な &), to_ (高価), into_ (所有権)
静的変数のプレフィックス static に対しては G_CONFIGconst に対してはプレフィックスなし

データ型

ルール ガイドライン
newtype を使用 ドメインセマンティクスのために struct Email(String)
スライスパターンを優先 if let [first, .., last] = slice
事前割り当て Vec::with_capacity(), String::with_capacity()
Vec の乱用を避ける 固定サイズには配列を使用

文字列

ルール ガイドライン
バイトを優先 ASCII の場合は s.bytes()s.chars() より優先
Cow<str> を使用 借用したデータを変更する可能性がある場合
format! を使用 + を使用した文字列連結よりも
ネストされたイテレーションを避ける 文字列に対する contains() は O(n*m)

エラー処理

ルール ガイドライン
? 伝播を使用 try!() マクロではない
unwrap() より expect() 値が保証されている場合
不変条件のアサーション 関数エントリで assert!

メモリ

ルール ガイドライン
意味のあるライフタイム 単なる 'a ではなく 'src, 'ctx
RefCell に対して try_borrow() パニックを避ける
変換のためのシャドーイング let x = x.parse()?

並行性

ルール ガイドライン
ロック順序を特定 デッドロックを防ぐ
プリミティブにはアトミックを使用 bool/usize に対して Mutex ではない
メモリ順序を慎重に選択 Relaxed/Acquire/Release/SeqCst

Async

ルール ガイドライン
CPUバウンドには Sync Async は I/O 向け
await をまたいでロックを保持しない スコープ付きガードを使用

マクロ

ルール ガイドライン
必要でない限り避ける 関数/ジェネリクスを優先
Rust 構文に従う マクロ入力は Rust のように見えるべき

非推奨 → より良いもの

非推奨 より良いもの 開始
lazy_static! std::sync::OnceLock 1.70
once_cell::Lazy std::sync::LazyLock 1.80
std::sync::mpsc crossbeam::channel -
std::sync::Mutex parking_lot::Mutex -
failure/error-chain thiserror/anyhow -
try!() ? operator 2018

クイックリファレンス

Naming: snake_case (fn/var), CamelCase (type), SCREAMING_CASE (const)
Format: rustfmt (just use it)
Docs: /// for public items, //! for module docs
Lint: #![warn(clippy::all)]

Claude は Rust の慣例をよく知っています。これらは、自明ではない Rust 固有のルールです。

📜 原文 SKILL.md(Claudeが読む英語/中国語)を展開

Rust Coding Guidelines (50 Core Rules)

Naming (Rust-Specific)

Rule Guideline
No get_ prefix fn name() not fn get_name()
Iterator convention iter() / iter_mut() / into_iter()
Conversion naming as_ (cheap &), to_ (expensive), into_ (ownership)
Static var prefix G_CONFIG for static, no prefix for const

Data Types

Rule Guideline
Use newtypes struct Email(String) for domain semantics
Prefer slice patterns if let [first, .., last] = slice
Pre-allocate Vec::with_capacity(), String::with_capacity()
Avoid Vec abuse Use arrays for fixed sizes

Strings

Rule Guideline
Prefer bytes s.bytes() over s.chars() when ASCII
Use Cow<str> When might modify borrowed data
Use format! Over string concatenation with +
Avoid nested iteration contains() on string is O(n*m)

Error Handling

Rule Guideline
Use ? propagation Not try!() macro
expect() over unwrap() When value guaranteed
Assertions for invariants assert! at function entry

Memory

Rule Guideline
Meaningful lifetimes 'src, 'ctx not just 'a
try_borrow() for RefCell Avoid panic
Shadowing for transformation let x = x.parse()?

Concurrency

Rule Guideline
Identify lock ordering Prevent deadlocks
Atomics for primitives Not Mutex for bool/usize
Choose memory order carefully Relaxed/Acquire/Release/SeqCst

Async

Rule Guideline
Sync for CPU-bound Async is for I/O
Don't hold locks across await Use scoped guards

Macros

Rule Guideline
Avoid unless necessary Prefer functions/generics
Follow Rust syntax Macro input should look like Rust

Deprecated → Better

Deprecated Better Since
lazy_static! std::sync::OnceLock 1.70
once_cell::Lazy std::sync::LazyLock 1.80
std::sync::mpsc crossbeam::channel -
std::sync::Mutex parking_lot::Mutex -
failure/error-chain thiserror/anyhow -
try!() ? operator 2018

Quick Reference

Naming: snake_case (fn/var), CamelCase (type), SCREAMING_CASE (const)
Format: rustfmt (just use it)
Docs: /// for public items, //! for module docs
Lint: #![warn(clippy::all)]

Claude knows Rust conventions well. These are the non-obvious Rust-specific rules.