首页/coding-guidelines
C

coding-guidelines

by @zhanghandongv1.0.0
0.0(0)

"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, 命名规范, 代码风格, 格式化, 最佳实践, 代码审查, 怎么命名"

Coding StandardsCode QualityBest PracticesSoftware EngineeringRustGitHub
安装方式
npx skills add zhanghandong/rust-skills --skill coding-guidelines
compare_arrows

Before / After 效果对比

0

description 文档


name: coding-guidelines description: "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, 命名规范, 代码风格, 格式化, 最佳实践, 代码审查, 怎么命名" source: https://rust-coding-guidelines.github.io/rust-coding-guidelines-zh/ user-invocable: false

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.

forum用户评价 (0)

发表评价

效果
易用性
文档
兼容性

暂无评价,来写第一条吧

统计数据

安装量944
评分0.0 / 5.0
版本1.0.0
更新日期2026年3月16日
对比案例0 组

用户评分

0.0(0)
5
0%
4
0%
3
0%
2
0%
1
0%

为此 Skill 评分

0.0

兼容平台

🔧Claude Code

时间线

创建2026年3月16日
最后更新2026年3月16日