ruby-optimise
28
总安装量
2
周安装量
#13365
全站排名
安装命令
npx skills add https://github.com/pproenca/dot-skills --skill ruby-optimise
Agent 安装分布
amp
2
opencode
2
kimi-cli
2
codex
2
claude-code
2
Skill 文档
Community Ruby Best Practices
Comprehensive performance optimization guide for Ruby applications, maintained by the community. Contains 42 rules across 8 categories, prioritized by impact to guide automated refactoring and code generation.
When to Apply
Reference these guidelines when:
- Writing new Ruby code or gems
- Optimizing ActiveRecord queries and database access patterns
- Processing large collections or building data pipelines
- Reviewing code for memory bloat and GC pressure
- Configuring Ruby runtime settings for production
Rule Categories by Priority
| Priority | Category | Impact | Prefix |
|---|---|---|---|
| 1 | Object Allocation | CRITICAL | alloc- |
| 2 | Collection & Enumeration | CRITICAL | enum- |
| 3 | I/O & Database | HIGH | io- |
| 4 | String Handling | HIGH | str- |
| 5 | Method & Dispatch | MEDIUM-HIGH | meth- |
| 6 | Data Structures | MEDIUM | ds- |
| 7 | Concurrency | MEDIUM | conc- |
| 8 | Runtime & Configuration | LOW-MEDIUM | runtime- |
Quick Reference
1. Object Allocation (CRITICAL)
alloc-avoid-unnecessary-dup– Avoid Unnecessary Object Duplicationalloc-freeze-constants– Freeze Constant Collectionsalloc-lazy-initialization– Use Lazy Initialization for Expensive Objectsalloc-avoid-temp-arrays– Avoid Temporary Array Creationalloc-reuse-buffers– Reuse Buffers in Loopsalloc-avoid-implicit-conversions– Avoid Repeated Computation in Hot Paths
2. Collection & Enumeration (CRITICAL)
enum-single-pass– Use Single-Pass Collection Transformsenum-lazy-large-collections– Use Lazy Enumerators for Large Collectionsenum-flat-map– Use flat_map Instead of map.flattenenum-each-with-object– Use each_with_object Over inject for Building Collectionsenum-avoid-count-in-loops– Avoid Recomputing Collection Size in Conditionsenum-chunk-batch-processing– Use each_slice for Batch Processing
3. I/O & Database (HIGH)
io-eager-load-associations– Eager Load ActiveRecord Associationsio-select-only-needed-columns– Select Only Needed Columnsio-batch-find-each– Use find_each for Large Record Setsio-avoid-queries-in-loops– Avoid Database Queries Inside Loopsio-stream-large-files– Stream Large Files Line by Lineio-connection-pool-sizing– Size Connection Pools to Match Thread Countio-cache-expensive-queries– Cache Expensive Database Results
4. String Handling (HIGH)
str-frozen-literals– Enable Frozen String Literalsstr-shovel-over-plus– Use Shovel Operator for String Buildingstr-interpolation-over-concatenation– Use String Interpolation Over Concatenationstr-avoid-repeated-gsub– Chain gsub Calls into a Single Replacementstr-symbol-for-identifiers– Use Symbols for Identifiers and Hash Keys
5. Method & Dispatch (MEDIUM-HIGH)
meth-avoid-method-missing-hot-paths– Avoid method_missing in Hot Pathsmeth-cache-method-references– Cache Method References for Repeated Callsmeth-block-vs-proc– Pass Blocks Directly Instead of Converting to Procmeth-avoid-dynamic-send– Avoid Dynamic send in Performance-Critical Codemeth-reduce-method-chain-depth– Reduce Method Chain Depth in Hot Loops
6. Data Structures (MEDIUM)
ds-set-for-membership– Use Set for Membership Testsds-struct-over-openstruct– Use Struct Over OpenStructds-sort-by-over-sort– Use sort_by Instead of sort with Blockds-array-preallocation– Preallocate Arrays When Size Is Knownds-hash-default-value– Use Hash Default Values Instead of Conditional Assignment
7. Concurrency (MEDIUM)
conc-fiber-for-io– Use Fibers for I/O-Bound Concurrencyconc-thread-pool-sizing– Size Thread Pools to Match Workloadconc-ractor-cpu-bound– Use Ractors for CPU-Bound Parallelismconc-avoid-shared-mutable-state– Avoid Shared Mutable State Between Threads
8. Runtime & Configuration (LOW-MEDIUM)
runtime-enable-yjit– Enable YJIT for Productionruntime-tune-gc-parameters– Tune GC Parameters for Your Workloadruntime-frozen-string-literal-default– Set Frozen String Literal as Project Defaultruntime-optimize-require– Optimize Require Load Order
How to Use
Read individual reference files for detailed explanations and code examples:
- Section definitions – Category structure and impact levels
- Rule template – Template for adding new rules
Reference Files
| File | Description |
|---|---|
| references/_sections.md | Category definitions and ordering |
| assets/templates/_template.md | Template for new rules |
| metadata.json | Version and reference information |