🎉 欢迎使用 AI合租 文档系统!返回主站 →
文档中心
💻 Vibe Coding
Day 6: 重构代码

Day 6: 重构代码

让老代码焕然一新,提升可读性和维护性。

识别重构时机

代码异味信号

  • 一个函数超过 50 行
  • 相同逻辑重复多次
  • 嵌套层级太深
  • 变量名不明确
  • 难以理解的复杂逻辑

什么时候重构

你:这个文件已经 500 行了,帮我拆分一下
你:这段逻辑在 3 个地方都有,能抽取成公共函数吗
你:这个组件做的事情太多了,怎么拆分?

函数重构

拆分大函数

// 重构前:一个函数做太多事
function handleUserSubmit(formData) {
  // 50+ 行代码...
}
你:这个函数太长了,帮我按职责拆分成几个小函数

Claude 会拆分成:

function validateUserData(formData) { /* ... */ }
function saveUserToDB(userData) { /* ... */ }
function sendWelcomeEmail(user) { /* ... */ }
function handleUserSubmit(formData) {
  const validData = validateUserData(formData);
  const user = saveUserToDB(validData);
  sendWelcomeEmail(user);
}

提取重复代码

你:这几个函数都有相似的错误处理逻辑,帮我提取出来

优化嵌套结构

你:这个 if-else 嵌套太深了,用早期返回优化一下

组件重构

拆分大组件

你:这个 UserDashboard 组件太复杂了,帮我拆分成几个子组件

Claude 会创建:

  • UserProfile 组件
  • UserStats 组件
  • UserActivity 组件
  • UserSettings 组件

提取自定义 Hook

你:这个组件里的数据获取逻辑很常用,提取成 useUserData Hook

优化 Props 传递

你:这个组件的 props 太多了,用 Context 或者对象传递优化一下

代码结构重构

文件组织

你:这个项目文件结构有点乱,帮我按功能重新组织

导入导出优化

你:统一这个项目的导入导出方式,用 barrel exports

配置文件整理

你:把分散的配置项统一到 config 文件夹

性能重构

React 性能优化

你:这个列表组件重渲染太频繁,用 memo 和 useMemo 优化

减少打包体积

你:按需导入 lodash 函数,不要导入整个库

懒加载优化

你:给路由组件添加懒加载,减少首屏加载时间

数据结构重构

状态管理优化

你:这个 Redux store 结构不合理,帮我重新设计

API 数据处理

你:统一处理 API 响应数据的格式转换

缓存策略

你:给频繁请求的数据添加缓存机制

重构步骤

1. 先写测试

你:重构前先给这些函数写测试,确保重构后行为不变

2. 小步重构

你:一次只重构一个函数,不要大改

3. 验证功能

你:重构完运行测试,确保功能正常

常见重构场景

移除重复代码

// 重构前
function createUser(data) {
  if (!data.email) throw new Error('Email required');
  if (!data.name) throw new Error('Name required');
  // ...
}

function updateUser(data) {
  if (!data.email) throw new Error('Email required');
  if (!data.name) throw new Error('Name required');
  // ...
}
你:这两个函数的验证逻辑重复了,提取成公共函数

简化条件语句

你:这个复杂的 if-else 能用策略模式或者 switch 简化吗?

改善命名

你:这些变量名 a, b, temp, data 不够清晰,帮我改成有意义的名字

减少参数传递

你:这个函数有 8 个参数,用对象参数简化一下

重构工具

自动格式化

你:用 Prettier 统一代码格式

静态分析

你:用 ESLint 检查代码质量问题

类型检查

你:给这个 JS 项目添加 TypeScript,逐步迁移

重构原则

保持功能不变

重构 = 改善代码结构,但不改变外部行为

小步快跑

一次改一点,频繁测试,避免一次性大改

有测试保护

重构前先有测试,重构后验证测试通过

重构心得:好代码不是一次写出来的,都是重构出来的。别怕改代码,改得越多越熟练。

第二阶段完成! 恭喜你掌握了实战开发技能。接下来进入进阶阶段,学习更复杂的项目开发。

下一步

Day 7: 项目初始化 - 从零搭建项目脚手架


练习建议

  • 找一个老项目,挑几个函数重构一下
  • 试试拆分一个复杂组件
  • 体验一下重构前后代码的可读性差异