---
id: ka-guidance-重构方法
kind: guidance
title: 重构方法
sync_policy: engine_only
status: active
triggers:
  - 重构
  - refactor
  - 解耦
  - 耦合
  - 重构方案
  - 改善代码
  - 抽象
extra:
  name: refactoring-method
  scope:
    - '*'
  products:
    - '*'
  category: procedure
  version: 1.0.0
  last_reviewed: '2026-06-17'
  verification_layer: L2
  stage: build
  domain: build
  owner_mechanism: mc-code-maintainability-observability-contract
---

# 重构方法：怎么改老代码不翻车

> 吸收旧的「重构方案」「重构流水线」「耦合检测」「OOD设计摘要」。

## 何时该重构（先想清楚）

- 代码确实难以理解/修改/扩展，且有测试保护
- 重构服务于当前目标，不是"看着不爽"

## 何时不该重构

- 没有测试覆盖的代码（先补测试）
- 跟当前任务无关的顺手重构（[[工程执行总纲]] 精准修改：禁止）
- 需求紧急、没有回滚余量时

## 重构步骤

1. **先有测试**：覆盖现有行为（重构后行为不变是验证标准）
2. **小步前进**：每步可编译可测试，不一次性大改
3. **每步验证**：跑测试，绿了再下一步
4. **新老逻辑比对**（改老系统）：行为一致才算通过

## 解耦判断

- 检测高耦合点（模块间循环依赖、上帝对象、散弹式修改）
- 用接口/事件/适配器解耦，但不过度抽象（[[工程执行总纲]] 简单优先）
- 引入新抽象前说明必要性

## 禁止

- 无测试就重构（违规，无法验证行为不变）
- 顺手重构无关模块（违规）
- 大爆炸式重构（违规，无法回滚）
- 为重构而抽象（违规，增加复杂度）

## 验证

重构后必须给出：所有要求执行的测试结果 + 行为不变的直接证据；失败、跳过或未执行项不得被“总体通过”掩盖。
