← 术语图鉴

重构

Refactoring · 也叫 重写 / 整理代码 / 抽组件

在不改变外在表现的前提下,调整代码的结构:抽出公共部分、换个组织方式、删掉用不到的东西。

你可能会说:

  • “AI 说代码太乱,建议重构一下,要不要同意?”
  • “重构完看起来一样,怎么知道没改坏?”

它是什么

重构的承诺是"外面看不出变化",所以它最需要一个判断标准:改之前和改之后,到底哪里一样。页面截图、构建出来的 HTML、测试结果,都可以拿来比。

重构最常见的事故是隐形依赖:你删掉或挪走的东西,另一个地方还在用,却没有任何报错提醒你。样式变量、共享组件、文件路径都是重灾区。

和 AI 一起重构时,要求它把"改结构"和"改行为"分开提交:重构的提交里,不应该混进新功能或视觉调整。

打个比方

像重新整理厨房:锅碗换了位置、调料归了类,做出来的菜得和原来一模一样。要是整理完菜的味道变了,那就不叫整理了。

在这个网站里

这个网站把 /e2e 的几个组件抽成全站共用时,用构建出来的 HTML 逐字节比对:95 个页面里 94 个完全一样,唯一的不同恰好修掉了一个旧 bug。而兄弟项目 E2E Review 的一次大重构,同时弄坏了四处功能(第 15 课)。

容易搞混的地方

常见误解

重构只是整理代码,不会出问题

正确理解

重构改动的往往正是被很多地方依赖的东西。没有"改前改后一样"的检查,它比加新功能还容易出事。

你可以这样告诉 AI

复制下面这段,贴给你的 AI

这次重构请只改结构、不改行为,和任何功能或视觉调整分开提交。动手前先搜一遍要删或要挪的东西还被谁引用;改完用构建产物或截图比对证明外观没变。

接着看

  • 回归——原本正常的东西,因为一次改动又坏了。它不是新功能的 bug,而是"倒退"。

在这些课里出现

相关的真实事故