Agent skill

code-refactor

Use when refactoring Go code for better structure, maintainability, extensibility, or testability - follows SOLID principles and idiomatic Go patterns

Stars 2
Forks 0

Install this agent skill to your Project

npx add-skill https://github.com/unix2dos/skills/tree/main/code-refactor

SKILL.md

Code Refactor

Golang 代码重构技能,帮助重构和优化 Go 代码。

When to Use

  • 需要改变代码结构(拆函数、拆模块、改接口)
  • 需要引入设计模式(依赖注入、函数选项模式等)
  • 改善可扩展性、可测试性
  • 涉及 SOLID 原则级别的结构调整

When NOT to Use

  • 只需要删代码、降复杂度、去冗余 → 用 code-simplifier
  • 需要审查安全/并发/性能问题 → 用 go-code-review
  • 非 Go 语言代码 → 用 code-simplifier(支持任何语言)

重构约束(按优先级执行)

P0 - 行为等价性(不可妥协)

  • 所有公开 API 的输入输出保持一致
  • 边界条件处理不变
  • 并发安全性保留
  • 如发现原代码存在逻辑缺陷,明确标注但不修复

P1 - 可维护性

目标:降低认知负担

  • 函数职责单一(单一职责原则)
  • 命名自解释(避免注释依赖)
  • 嵌套层级 ≤ 3
  • 圈复杂度 ≤ 10(特殊业务逻辑可放宽至 15)
  • 使用 Early Return 减少嵌套

P2 - 可扩展性

策略:接口隔离 + 依赖注入

  • 反过度设计:不为"可能"的需求预留扩展点
  • 使用函数选项模式(Functional Options)
  • 配置与逻辑分离

P3 - 可测试性

原则:依赖可替换

  • 外部依赖通过接口注入
  • 避免包级变量(logger 等除外)
  • 纯函数优先

输出格式

先输出以下诊断报告,等待用户确认后,再进行重构。

重构策略

  1. 核心改动:[用一句话说明主要重构方向]
  2. 设计模式:[使用的模式及理由]
  3. 权衡说明:[哪些地方优先实用性而非理论完美]

风险评估

  • 破坏性变更:[是/否],具体:xxx
  • 性能影响:[提升/下降/持平],原因:xxx
  • 依赖变化:[新增/移除的依赖]

Didn't find tool you were looking for?

Be as detailed as possible for better results