refactoring-patterns

GitHub

提供系统化重构技巧,包括代码异味消除、模式提取及遗留系统现代化。涵盖重构工作流、提取方法、多态替换条件等具体策略,旨在提升代码质量且保持行为不变。

categories/development/refactoring-patterns/SKILL.md cosmicstack-labs/mercury-agent-skills

触发场景

需要重构代码以消除异味 处理遗留代码现代化 优化复杂逻辑或长函数

安装

npx skills add cosmicstack-labs/mercury-agent-skills --skill refactoring-patterns -g -y
更多选项

非标准路径

npx skills add https://github.com/cosmicstack-labs/mercury-agent-skills/tree/main/categories/development/refactoring-patterns -g -y

不安装直接使用

npx skills use cosmicstack-labs/mercury-agent-skills@refactoring-patterns

指定 Agent (Claude Code)

npx skills add cosmicstack-labs/mercury-agent-skills --skill refactoring-patterns -a claude-code -g -y

安装 repo 全部 skill

npx skills add cosmicstack-labs/mercury-agent-skills --all -g -y

预览 repo 内 skill

npx skills add cosmicstack-labs/mercury-agent-skills --list

SKILL.md

Frontmatter
{
    "name": "refactoring-patterns",
    "metadata": {
        "tags": [
            "refactoring",
            "code-quality",
            "patterns",
            "legacy",
            "modernization"
        ],
        "author": "cosmicstack-labs",
        "version": "1.0.0",
        "category": "development"
    },
    "description": "Systematic refactoring techniques, code smell elimination, pattern extraction, and legacy modernization"
}

Refactoring Patterns

Systematically improve code without changing its behavior.

The Refactoring Workflow

  1. Identify a code smell or pain point
  2. Ensure you have tests (write them first if not)
  3. Apply one refactoring at a time
  4. Test after each change (green = continue, red = revert)
  5. Commit — small, focused, descriptive
  6. Repeat

Extract Method

When: A method does multiple things or is too long. How: Find a cohesive block → extract to new method → call it.

// Before
function processOrder(order) {
  const total = order.items.reduce((sum, i) => sum + i.price, 0);
  const tax = total * 0.08;
  const discount = order.coupon ? total * 0.1 : 0;
  return total + tax - discount;
}

// After
function processOrder(order) {
  const subtotal = calculateSubtotal(order);
  const tax = calculateTax(subtotal);
  const discount = calculateDiscount(order, subtotal);
  return subtotal + tax - discount;
}

Replace Conditional with Polymorphism

When: Switch/if-else chains based on type grow too long.

// Before
function calculateShipping(order) {
  if (order.type === 'standard') return order.weight * 0.5;
  if (order.type === 'express') return order.weight * 1.5 + 5;
  if (order.type === 'overnight') return order.weight * 3 + 15;
}

// After
class StandardShipping {
  calculate(weight) { return weight * 0.5; }
}
class ExpressShipping {
  calculate(weight) { return weight * 1.5 + 5; }
}

Legacy Code Strategy

  1. Characterize with tests: Write tests that capture current behavior
  2. Sprout method: Add new code in new methods, don't modify old
  3. Wrap method: Wrap entire methods with new behavior (logging, caching)
  4. Step-by-step: Extract small pieces over time
  5. Strangler pattern: New code replaces old incrementally, old gets retired

Common Refactorings

Refactoring When Risk
Rename Variable Unclear name Low
Extract Method Long function Low
Replace Magic Literal Hard-coded values Low
Introduce Parameter Object Many parameters Medium
Replace Temp with Query Reused expressions Low
Decompose Conditional Complex condition Medium
Extract Class Class doing too much Medium-High

版本历史

  • 38e2523 当前 2026-07-05 19:38

同 Skill 集合

categories/ai-ml/agent-audit-logging/SKILL.md
categories/ai-ml/agent-handoff-protocols/SKILL.md
categories/ai-ml/agent-health-monitoring/SKILL.md
categories/ai-ml/agent-task-delegation/SKILL.md
categories/ai-ml/ai-agent-design/SKILL.md
categories/ai-ml/error-recovery-retry/SKILL.md
categories/ai-ml/memory-management/SKILL.md
categories/ai-ml/prompt-engineering/SKILL.md
categories/ai-ml/prompt-version-management/SKILL.md
categories/ai-ml/routerbase-model-gateway/SKILL.md
categories/ai-ml/token-budget-tracking/SKILL.md
categories/automation/daily-briefing/SKILL.md
categories/automation/screenshot/SKILL.md
categories/automation/shell-scripting/SKILL.md
categories/automation/twitter-account-manager/SKILL.md
categories/automation/workflow-automation/SKILL.md
categories/automation/x-twitter-automation/SKILL.md
categories/backend/api-design/SKILL.md
categories/backend/authentication-authorization/SKILL.md
categories/backend/caching-strategies/SKILL.md
categories/backend/database-design/SKILL.md
categories/backend/message-queues/SKILL.md
categories/backend/microservices/SKILL.md
categories/backend/nodejs-patterns/SKILL.md
categories/backend/python-patterns/SKILL.md
categories/backend/serverless-patterns/SKILL.md
categories/business/event-staffing-compliance/SKILL.md
categories/business/event-staffing-ordering/SKILL.md
categories/business/negotiation/SKILL.md
categories/business/startup-strategy/SKILL.md
categories/career/career-planning/SKILL.md
categories/career/interview-prep/SKILL.md
categories/career/linkedin-optimization/SKILL.md
categories/career/resume-writing/SKILL.md
categories/career/salary-negotiation/SKILL.md
categories/creative-personal-development/content-repurposer/SKILL.md
categories/creative-personal-development/daily-standup-journal/SKILL.md
categories/creative-personal-development/decision-matrix/SKILL.md
categories/creative-personal-development/idea-validator/SKILL.md
categories/creative-personal-development/meeting-note-summarizer/SKILL.md
categories/creative-personal-development/personal-branding-statement/SKILL.md
categories/creative-personal-development/storytelling-advisor/SKILL.md
categories/creative-personal-development/time-blocking-scheduler/SKILL.md
categories/data/data-pipeline/SKILL.md
categories/design/accessibility/SKILL.md
categories/design/ui-design-system/SKILL.md
categories/development/api-documentation/SKILL.md
categories/development/architecture-decision-records/SKILL.md
categories/development/clean-code/SKILL.md
categories/development/code-review/SKILL.md

元信息

文件数
0
版本
4c57cf2
Hash
518f672b
收录时间
2026-07-05 19:38

首页 - Wiki
Copyright © 2011-2026 iteam. Current version is 2.155.2. UTC+08:00, 2026-08-07 03:00
浙ICP备14020137号-1 $访客地图$