Trae Solo 重构老项目实战:帮我把代码“洗了个澡”

71 阅读2分钟

我手上有个几年前的 Python 项目,结构混乱、文件命名不统一、业务逻辑缠在一起——典型“历史包袱型代码”。
这次借着掘金活动,我试了试用 Trae Solo 帮我重构,没想到效果比预期好太多。


🧹 Step 1:让 Trae Solo 扫描项目结构

我给它下达的第一个指令非常简单:

扫描整个 project 目录,告诉我结构问题。

并且列出几个典型问题:

  • utils 文件夹里都是不相关的东西
  • api、service、logic 含义不清晰
  • 多个模块命名风格不一致(XXService、xx_service 混着来)
  • 有些函数被复用但没有拆出去

这比我自己肉眼看要快太多了。


🧱 Step 2:让它“先给方案,不要动代码”

重构最怕的是“AI 擅自改代码”。
所以我告诉它:

先给重构方案,不要写代码。

Trae Solo 给了一个非常稳的分层建议:

/api
/domain
/services
/repository
/common

而且还给出具体说明:

repository 下只放 DB 相关
services 放业务逻辑,不负责 IO
common 放工具、异常、类型定义

我照着方案过了一遍,感觉是一个能落地的合理结构,于是进入下一步。


🛠 Step 3:开始重构(可控、逐步、稳)

我让它从最简单的模块开始,比如 utils。

它给出的 diff 都非常小范围:

- def readconf(path):
+ def read_config(path):

再比如把重复函数抽出来的示例:

# common/validator.py
def ensure_not_empty(value, field):
    if not value:
        raise ValueError(f"{field} cannot be empty")

不会出现那种“突然写了一坨东西”的恐怖情况。


🧪 Step 4:自动修 import,巨爽

旧项目最头疼的就是 import 崩坏。

我直接对 Trae Solo 说:

帮我统一修 import,让路径符合新结构。

它逐文件扫描、修复,再给我每个文件的 diff。

示例:

- from utils.helper import parse
+ from common.helper import parse

非常干净,没有乱动别的部分。


📦 Step 5:生成单元测试,补空洞

老代码最缺的就是测试。
我用一句话解决:

帮我为改过的模块生成 pytest 测试。

它自动检测:

  • 输入边界
  • 异常分支
  • 空值情况
  • 类型不匹配

示例:

def test_ensure_not_empty_fail():
    with pytest.raises(ValueError):
        ensure_not_empty("", "name")

这种“给人放心的代码”,完全写出了资深开发者的风格。


🎯 最后总结:Trae Solo 特别适合重构老项目

它不会一次性替你干掉全部,而是和你一起“缓缓推进”。

  • 结构分析快
  • 重构建议稳
  • diff 小且精确
  • import 自动修补能力强
  • 能补测试