AI 时代,大家现在都是怎么重构老项目的?

1 天前
 Paxton886

目前有一些运行多年的 Java / Spring Boot 项目,随着业务不断迭代,逐渐积累了不少典型问题:

以前做这种项目的重构,基本都是人工:

读代码 → 梳理业务 → 找问题 → 设计新结构 → 小范围修改 → 测试 → 再继续改

现在 Codex 、Claude Code 这类 Coding Agent 已经可以直接理解和修改整个 Repo ,所以比较好奇,大家有没有真正把 AI 用到大型存量项目重构上?

最近看到的一些思路

比如给 Agent 配置专门的 Skill / Rules ,然后让 Agent 按类似下面的流程工作:

扫描项目 → 分析架构和依赖 → 找 Code Smell → 生成重构 Plan → 人工确认 → 分模块修改 → 编译 / 单测 → Diff Review

感觉相比直接跟 AI 说一句:

「帮我重构这个项目」

这种方式可能更可控。

另外也看到有人使用 OpenRewrite + AI Agent,让 AI 负责分析和决策,OpenRewrite 负责 AST 级别的批量重构。

比较想请教大家

  1. 现在大家会让 Codex / Claude Code 直接参与老项目重构吗?
  2. 有没有比较成熟的 Java / Spring Boot Refactoring Skill 、Prompt 、Rules 或 Workflow 推荐?
  3. 对于几十万甚至上百万行的项目,AI 怎么建立足够完整的项目上下文?
  4. AI 重构最大的坑是什么?业务逻辑误改、上下文不足,还是测试覆盖率?
  5. 有没有团队已经形成「 AI Code Review → Refactoring Plan → 自动修改 → Test → Review 」这样的工程化流程?
  6. AI 时代还有没有必要专门投入人力做一次“大重构”,还是更适合让 AI 在日常需求开发过程中持续渐进式重构?

目前我的感觉是:

AI 最大的价值可能不是“帮忙写重构后的代码”,而是把过去成本很高的“理解老代码 + 找问题 + 制定重构方案 + 验证修改”这条链路大幅压缩。

不知道大家实际用下来怎么样,有没有踩过坑或者比较成熟的实践方案?

尤其想听听真正拿 AI 重构过生产环境 Java 老项目的经验。

3781 次点击
所在节点    程序员
36 条回复
crocoBaby
23 小时 15 分钟前
@cz5424 我也不敢,安装 uniapp 老出错
JoJoWuBeHumble
22 小时 52 分钟前
其实你这个 skill 模式看起来是重构,其实应该是重写。
像我们项目里面原本有很多设计不合理的地方,没有考虑到未来应用变化和复杂度,很多地方都是修修补补。
现在有 AI ,让 AI 充分过一遍项目,生成一个完整重写的方案,自己和 AI 都提不合理的地方,然后整个进行重写。
当然,这只是适合小一点项目
andie
22 小时 31 分钟前
/improve-codebase-architecture
AddIce
22 小时 23 分钟前
非必要,不重构。尤其是公司的项目。
ionfev
21 小时 45 分钟前
旧项目一般不值得重构,除非要复用,直接在新项目上对照旧项目迁移重构,AI 很适合,解决技术债,现在有了 AI 可以做了。
yyfjj
21 小时 33 分钟前
@sentinelK 兄台所言极是
hehebo
20 小时 34 分钟前
@apkapb 85%-90%那是代码量。实际,你的细节工作量,是 90%以上。
sxguka
20 小时 6 分钟前
感觉这个问题都是 AI 写的
ylsc633
18 小时 58 分钟前
确实如楼上说的,非必要不重构

但是我今年就重构了

一个非常老的项目,java 的,本地都起不来,里面一堆 if else ,项目已经交接 N 手了
我去年就想重构了,因为实在不想写这个 java ,一个接口,我点了十层,还没看到逻辑代码

说我怎么重构的
1. 梳理业务,必须知道要重构的系统涉及的业务,包括上下游、同步的、异步的,都得知道,否则给自己挖大坑
2. 重新设计架构,包括 领域、实体关系等等,老系统架构是不是不能满足当前的业务了,是不是不好扩展了,你得结合未来系统支持的业务发展,一并考虑,你的系统设计
3. 考虑新老系统怎么转换,数据怎么迁移,对使用方( B 端、C 端、M 端)怎么尽量无感
4. 定好新系统大概的框架,然后从某个方向开始让 AI 阅读老项目,再出设计方案,没问题就开始写

我就是这么搞的
sir283
17 小时 47 分钟前
重构之前先备份,不然血泪不止。不过老项目除非推到重来,不然没事不要去动,继续堆屎山就完事了。
Thorc
17 小时 22 分钟前
@cz5424 没问题的,vue3 刚出的时候我都是手动重构的,涉及到写法/用法变更的还是蛮少的,AI 读一遍文档自己就会改写了,项目结构也不用动
shakoon
17 小时 9 分钟前
如果没有新需求要进行大的变动,真没必要重构。我这儿还有好多 VB6 写的小程序,用得挺顺手的,毫无升级动力
yidinghe
16 小时 8 分钟前
人是核心,下面几点只有人知道,AI 不知道:
1. 重构的原因,问题来自哪些用户,哪些业务部门,这些都是人去沟通,AI 做不了。
2. 重构的目标,做到什么程度算是适可而止,算是兼顾成本和效率,其依据很多来自系统之外,AI 做不了。
3. 有了目标之后,如何阶段性的实施,这个也要考虑各个部门的工作方式,业务场景间的依赖,AI 做不了。

把上面这些定下来了,你要整理成几十上百页的文档喂给 AI ,让 AI 跟你的想法对齐,而且必须是顶级的 AI ,你才能放手让 AI 做剩下的事。
dfcgod
5 小时 26 分钟前
有什么好重构的,让 AI 来兼容做就行了,普通技术应该稳定的满足业务就行了
改天换地的技术,那就不存在需要重构的概念:)
matepi
3 小时 23 分钟前
实在太大的项目,不如重建新项目,绞杀者模式充分并行的基础上逐步替代要可行多了
ddhYr
2 小时 37 分钟前
直接重写,重构没必要,或者覆盖 e2e 测试,后部分功能重构

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://v2ex.ih06.com/t/1236985

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX