code-quality

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

Code Quality

代码质量

Use the code-quality scripts for all operations.
所有操作均使用代码质量脚本完成。

Usage

使用方法

bash
undefined
bash
undefined

Format check (fast)

格式检查(快速)

./scripts/code-quality.sh fmt
./scripts/code-quality.sh fmt

Lint with clippy

使用Clippy进行代码检查

./scripts/code-quality.sh clippy
./scripts/code-quality.sh clippy

Security audit

安全审计

./scripts/code-quality.sh audit
./scripts/code-quality.sh audit

Run all quality gates

运行所有质量门禁

./scripts/code-quality.sh check
./scripts/code-quality.sh check

Auto-fix common issues

自动修复常见问题

./scripts/code-quality.sh clippy --fix
undefined
./scripts/code-quality.sh clippy --fix
undefined

Quality Gates

质量门禁

CheckCommand
Format
./scripts/code-quality.sh fmt
Lint
./scripts/code-quality.sh clippy --workspace
Audit
cargo audit
Full
./scripts/quality-gates.sh
Coverage
cargo llvm-cov --html --output-dir coverage
Docs
cargo doc --no-deps
检查项命令
格式检查
./scripts/code-quality.sh fmt
代码检查
./scripts/code-quality.sh clippy --workspace
安全审计
cargo audit
全面检查
./scripts/quality-gates.sh
覆盖率检查
cargo llvm-cov --html --output-dir coverage
文档检查
cargo doc --no-deps

Rust Quality Dimensions

Rust代码质量维度

DimensionFocusCheck
StructureFiles <500 LOC, module hierarchy
find . -name "*.rs" -exec wc -l {} +
Error HandlingCustom Error, Result<T>, no unwrap
rg "unwrap()" --glob "*.rs" --glob "!*/tests/*"
Async Patternsasync fn, spawn_blocking, no blocking
rg "async fn|spawn_blocking" --glob "*.rs"
Testing>=90% coverage, integration tests
./scripts/quality-gates.sh
DocumentationPublic APIs 100% documented
cargo doc --no-deps
维度关注点检查方式
代码结构文件行数<500 LOC,模块层级清晰
find . -name "*.rs" -exec wc -l {} +
错误处理自定义错误类型、Result<T>,避免unwrap
rg "unwrap()" --glob "*.rs" --glob "!*/tests/*"
异步模式async fn、spawn_blocking,避免阻塞操作
rg "async fn|spawn_blocking" --glob "*.rs"
测试覆盖率≥90%,集成测试完善
./scripts/quality-gates.sh
文档公共API 100%有文档
cargo doc --no-deps

Rust-Specific Anti-Patterns

Rust特定反模式

  • Excessive Clone: Use borrowing or Arc
  • Unnecessary Unwrap: Use
    ?
    operator
  • Deep Nesting: Extract methods to flatten
  • Large Functions: Split into smaller functions (< 50 LOC)
  • Deadlocks: Release locks before
    .await
  • 过度克隆:使用借用或Arc
  • 不必要的unwrap:使用
    ?
    操作符
  • 深层嵌套:提取方法以扁平化代码结构
  • 过大函数:拆分为更小的函数(<50 LOC)
  • 死锁:在
    .await
    前释放锁

Best Practices Checklist

最佳实践检查清单

  • Files <500 LOC
  • Clear module hierarchy
  • Custom Error enum with Result<T>
  • No unwrap() in production code
  • async fn for IO operations
  • spawn_blocking for CPU work
  • >=90% test coverage
  • Public APIs documented
  • SOLID principles applied
  • No code duplication (DRY)
  • 文件行数<500 LOC
  • 模块层级清晰
  • 自定义Error枚举搭配Result<T>
  • 生产代码中无unwrap()
  • IO操作使用async fn
  • CPU密集型工作使用spawn_blocking
  • 测试覆盖率≥90%
  • 公共API已文档化
  • 遵循SOLID原则
  • 无代码重复(DRY原则)

Dependency Monitoring (ADR-036)

依赖监控(ADR-036)

Track duplicate dependency count as a quality metric:
bash
undefined
将重复依赖数量作为质量指标进行跟踪:
bash
undefined

Count duplicate dependency roots (target: < 100)

统计重复依赖根节点数量(目标:<100)

cargo tree -d | grep -cE "^[a-z]"
cargo tree -d | grep -cE "^[a-z]"

Find unused dependencies

查找未使用的依赖

cargo install --locked cargo-machete cargo-shear cargo machete cargo shear
cargo install --locked cargo-machete cargo-shear cargo machete cargo shear

Find unused features

查找未使用的特性

cargo install --locked cargo-unused-features cargo unused-features analyze
undefined
cargo install --locked cargo-unused-features cargo unused-features analyze
undefined

References

参考资料

  • ADR-036: Dependency Deduplication
  • ADR-032: Disk Space Optimization
Consolidated from these former skills (preserved in
_consolidated/
):
  • rust-code-quality
    — Rust-specific quality dimensions, analysis commands, report format
  • clean-code-developer
    — SOLID principles, refactoring techniques, anti-patterns
  • ADR-036: 依赖去重
  • ADR-032: 磁盘空间优化
整合自以下原技能(保留在
_consolidated/
目录中):
  • rust-code-quality
    — Rust特定质量维度、分析命令、报告格式
  • clean-code-developer
    — SOLID原则、重构技巧、反模式