Claude-skill-registry golang-design-patterns
Go design patterns and refactoring skill. Use when refactoring complex code, reducing technical debt, or applying design patterns. Detects code smells and suggests pattern-based solutions.
install
source · Clone the upstream repo
git clone https://github.com/majiayu000/claude-skill-registry
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/majiayu000/claude-skill-registry "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/data/design-patterns" ~/.claude/skills/majiayu000-claude-skill-registry-golang-design-patterns && rm -rf "$T"
manifest:
skills/data/design-patterns/SKILL.mdsource content
Golang Design Patterns & Refactoring
Expert-level code refactoring and design pattern application for Go. Detects code smells, suggests refactoring strategies, and applies proven design patterns to improve maintainability.
When to Apply
Use this skill when:
- Refactoring complex or legacy code
- Reducing technical debt
- Extracting reusable patterns
- Simplifying large functions (God Objects)
- Improving code maintainability
- Applying Gang of Four patterns to Go
Rule Categories by Priority
| Priority | Count | Focus |
|---|---|---|
| High | 2 | Critical refactoring needs |
| Medium | 11 | Code quality improvements |
Rules Covered (13 total)
High-Impact Patterns (2)
- Extract logic from 300+ line functionshigh-god-object
- Name complex code blocks with descriptive methodshigh-extract-method
Medium Improvements (11)
- Replace primitives with value objectsmedium-primitive-obsession
- Use parameter objects for >5 paramsmedium-long-parameter-list
- Extract repeated parameter groupsmedium-data-clumps
- Move logic closer to datamedium-feature-envy
- Replace magic numbers with named constantsmedium-magic-constants
- Fluent API for complex constructionmedium-builder-pattern
- Validated object creationmedium-factory-constructor
- Group related parametersmedium-introduce-parameter-object
- Replace type switches with interfacesmedium-switch-to-strategy
- Decorator pattern for http.Handlermedium-middleware-decorator
- Reduce coupling, avoid message chainsmedium-law-of-demeter
Common Refactoring Patterns
God Object → Extracted Methods
// ❌ 500 line function func (u *Usecase) Process() { ... } // ✅ Extracted methods func (u *Usecase) Process() { u.validate() u.transform() u.persist() }
Primitive Obsession → Value Object
// ❌ Primitive types func CreateUser(email string) { ... } // ✅ Value object type Email struct { value string } func CreateUser(email Email) { ... }
Type Switch → Strategy Pattern
// ❌ Type switch switch v := val.(type) { ... } // ✅ Strategy pattern type Processor interface { Process() }
Trigger Phrases
This skill activates when you say:
- "Refactor this code"
- "Reduce complexity"
- "Extract methods from large function"
- "Apply design patterns"
- "Improve maintainability"
- "Simplify this usecase"
- "Find code smells"
How to Use
For Code Refactoring
- Identify code smells (God Objects, long parameter lists, etc.)
- Apply appropriate refactoring pattern
- Verify tests still pass
- Check for improved readability
For Pattern Application
- Identify appropriate pattern for use case
- Apply pattern incrementally
- Ensure pattern improves, not complicates code
Output Format
## High Priority Refactoring: X ### [Rule Name] (Line Y) **Code Smell**: God Object / Long Parameter List / Primitive Obsession **Impact**: Hard to maintain / Test / Understand **Refactoring**: Extract Method / Introduce Parameter Object / Create Value Object **Example**: ```go // Refactored code
Related Skills
- golang-clean-architecture - For usecase complexity patterns
- golang-idiomatic-go - For interface design
Philosophy
Based on Martin Fowler's Refactoring:
- Code smells indicate problems - Detect and address systematically
- Refactor incrementally - Small, safe steps
- Patterns are solutions - Apply when appropriate, not dogmatically
- Maintainability matters - Code is read more than written
Notes
- Focus on common Go refactoring patterns
- All patterns adapted for Go idioms
- Emphasizes readability and maintainability
- Includes Gang of Four patterns applicable to Go