Claude Code 代码重构质量提升

Claude Code 代码重构质量提升

所有的代码都值得用 AI 重新重构一遍。无论是刚写完的新代码,还是项目中沉淀多年的老代码,在结构、命名、冗余度上往往都有优化空间。本文介绍两个 Agent Skills——code-simplifier 和 vueuse-functions,让 Claude Code 在编码之后自动完成代码精简和重构,功能不变,质量提升。

  • code-simplifier:通用代码简化与重构技能,适用于任何语言和项目
  • vueuse-functions:Vue.js / Nuxt 项目专用,自动应用 VueUse 组合式函数替代手写代码

code-simplifier:代码简化专家

简介

code-simplifier 是一个通用代码简化技能,来源于 Anthropic 官方插件。它专注于在不改变代码功能的前提下,提升代码的清晰度、一致性和可维护性。

核心原则:只改变代码怎么写,不改变代码做什么。

安装

npx skills add https://github.com/simonwong/agent-skills --skill code-simplifier

技能主页:https://skills.sh/simonwong/agent-skills/code-simplifier

使用

code-simplifier 支持两种触发方式:

  • 自动触发:安装后,Claude 在代码编写或修改后自动介入,无需手动操作
  • 手动触发:通过斜杠命令指定目标文件
/code-simplifier src/services/userService.ts
指定文件路径

手动调用时传入文件路径,Claude 会针对该文件进行代码简化分析和优化。不传路径时默认处理当前会话中最近修改的代码。

工作机制

code-simplifier 遵循以下流程:

flowchart LR
    A[识别修改范围] --> B[分析优化机会]
    B --> C[应用优化]
    C --> D[验证结果]
阶段说明
识别修改范围定位当前会话中最近修改过的代码段,默认只处理新写或改动的代码
分析优化机会检查冗余、过度嵌套、命名不规范等问题,参考项目 CLAUDE.md 编码规范
应用优化在保持功能不变的前提下简化代码结构,提升可读性和可维护性
验证结果确认优化后的代码更简洁且保持完整功能

优化规则

code-simplifier 遵循明确的优化方向和边界:

会做的事:

优化类型说明
减少嵌套降低 if/else、循环等不必要的嵌套层级
消除冗余移除重复代码和无用的抽象层
改善命名使用更清晰的变量名和函数名
合并逻辑将分散但相关的代码整合在一起
清理注释移除描述显而易见逻辑的多余注释
遵循规范按照项目 CLAUDE.md 中定义的编码标准调整代码

不会做的事:

限制说明
不改变功能所有原有特性、输出和行为保持不变
不过度压缩避免嵌套三元运算符、密集的单行代码
不过度抽象不会为一次性操作创建工具函数
不扩大范围默认只处理当前修改过的代码
选择清晰而非简短

code-simplifier 优先选择清晰易读的代码,而非追求最少行数。多条件判断时,偏好 switch 语句或 if/else 链,而非嵌套三元运算符。

实际效果

优化前:

const getStatusText = (status: number) => {
  // 获取状态文本
  // 根据状态码返回对应的文本
  const text = status === 0 ? '待处理' : status === 1 ? '处理中' : status === 2 ? '已完成' : '未知'
  return text
}

优化后:

function getStatusText(status: number): string {
  switch (status) {
    case 0: return '待处理'
    case 1: return '处理中'
    case 2: return '已完成'
    default: return '未知'
  }
}

优化点:移除多余注释和临时变量,嵌套三元改为 switch,添加显式返回类型。

vueuse-functions:VueUse 组合式函数助手

简介

vueuse-functions 由 Anthony Fu(Vue/Nuxt 核心团队成员)维护,是 Vue.js / Nuxt 项目的专用技能。VueUse 相当于 Java 生态中的 Hutool / Apache Commons——提供 200+ 个开箱即用的组合式函数,覆盖状态管理、DOM 操作、浏览器 API、网络请求、防抖节流等常见场景。该技能在开发过程中自动识别可以用 VueUse 替代的手写逻辑,用社区验证的方案替代重复实现。

核心理念:优先使用 VueUse,而非手写重复逻辑。

安装

npx skills add https://github.com/antfu/skills --skill vueuse-functions

技能主页:https://skills.sh/antfu/skills/vueuse-functions

前置条件

项目需要使用 Vue 3 或 Nuxt 3 及以上版本,并安装 VueUse 依赖:pnpm add @vueuse/core

使用

vueuse-functions 支持两种触发方式:

  • 自动触发:安装后,Claude 在编写 Vue/Nuxt 代码时自动识别可替换为 VueUse 的场景
  • 手动触发:通过斜杠命令指定目标文件
/vueuse-functions src/views/dashboard/index.vue
指定文件路径

手动调用时传入 Vue 文件路径,Claude 会扫描该文件中可以用 VueUse 组合式函数替代的手写逻辑。

调用规则

vueuse-functions 对每个函数定义了三种调用级别:

级别含义示例
AUTO自动应用,无需用户请求useLocalStorageuseDarkonClickOutside
EXTERNAL需要安装额外依赖才能使用useAxiosuseSortableuseQRCode
EXPLICIT_ONLY仅在用户明确要求时使用toRefgetset
AUTO 级别

大多数核心函数都是 AUTO 级别,Claude 会在合适的场景自动推荐使用,无需手动指定。

实际效果

优化前(手写实现):

<script setup lang="ts">
import { ref, onMounted, onUnmounted } from 'vue'

const isDark = ref(false)
const windowWidth = ref(window.innerWidth)
const searchText = ref('')
const debouncedSearch = ref('')

let timer: ReturnType<typeof setTimeout> | null = null

function toggleDark() {
  isDark.value = !isDark.value
  document.documentElement.classList.toggle('dark', isDark.value)
}

function handleResize() {
  windowWidth.value = window.innerWidth
}

function handleSearch(val: string) {
  if (timer) clearTimeout(timer)
  timer = setTimeout(() => {
    debouncedSearch.value = val
  }, 300)
}

onMounted(() => {
  window.addEventListener('resize', handleResize)
})

onUnmounted(() => {
  window.removeEventListener('resize', handleResize)
  if (timer) clearTimeout(timer)
})
</script>

优化后(使用 VueUse):

<script setup lang="ts">
const isDark = useDark()
const toggleDark = useToggle(isDark)
const { width: windowWidth } = useWindowSize()
const searchText = ref('')
const debouncedSearch = refDebounced(searchText, 300)
</script>

优化点:30+ 行代码缩减为 5 行,自动处理事件监听的注册/销毁,防抖逻辑内置,暗色模式自动持久化。

两个技能的协作

code-simplifier 和 vueuse-functions 可以叠加使用,在 Vue/Nuxt 项目中形成双重优化:

flowchart LR
    A[编写代码] --> B[vueuse-functions<br/>替换手写实现]
    B --> C[code-simplifier<br/>简化代码结构]
    C --> D[高质量代码]
优化阶段负责技能关注点
函数替换vueuse-functions用 VueUse 替代手写的事件监听、存储、防抖等逻辑
结构优化code-simplifier简化嵌套、改善命名、消除冗余、统一风格