无文档遗留系统的逆向梳理:利用 AI 重建架构视图

接手老项目时,没文档、没注释,调用关系只能靠猜。点开几个文件,一路 Ctrl+Click 追下去,十几分钟 IDE 铺满Tab,越看越迷糊。

以前只能硬啃:翻代码、画草图,在脑子里拼结构,费时还容易陷进细节出不来。

现在可以直接把代码交给AI,让它帮你梳理模块边界、依赖关系和调用链,生成架构图,输出 Mermaid/PlantUML 代码。先看清全局,再决定往哪深入。

一个真实例子

假设你接手了一个 Spring Boot 的电商后端项目,代码结构大概是这样:

src/main/java/com/example/shop/
├── ShopApplication.java           # 启动类
├── controller/
│   ├── UserController.java
│   ├── OrderController.java
│   └── PaymentController.java
├── service/
│   ├── UserService.java
│   ├── OrderService.java
│   └── PaymentService.java
├── repository/
│   ├── UserRepository.java
│   └── OrderRepository.java
└── entity/
    ├── User.java
    └── Order.java

你想快速搞清楚各个模块是怎么调用的。

把代码复制给 AI,用这样的 Prompt:

帮我分析一下这些 Spring Boot 代码的调用关系,生成一个 Mermaid 架构图。

重点展示:
1. Controller 层如何调用 Service 层
2. Service 层之间的相互调用
3. Service 层如何调用 Repository 层
4. 用中文标注每个模块是干什么的

代码如下:
[把几个 Controller、Service、Repository 的代码贴进去]

然后 AI 会给你一段 Mermaid 代码:

HTTP

查询用户

验证用户

更新订单

客户端请求

Controller 层

UserController

OrderController

PaymentController

UserService

OrderService

PaymentService

UserRepository

OrderRepository

MySQL数据库

S1,S2,S3

R1,R2

你把这段代码贴到 https://mermaid.live,一张图就出来了。

那一刻,原本混乱的文件关系,突然清晰了。

不同场景用不同的图

架构这东西,不同的人想看不同的视角。

给产品经理看:时序图

产品想了解一个业务流程是怎么跑的?让 AI 画时序图:

请生成一个时序图,展示 Spring Boot 应用中"用户下单"这个流程:
从 Controller 收到请求开始,到数据库保存成功的每一步调用

你会看到一条清晰的调用链:Controller → OrderService → 库存校验 → PaymentService → Repository → 数据库。

给新同事看:分层图

新人入职,需要快速了解项目分层?让 AI 画分层架构:

请生成分层架构图,展示这个 Spring Boot 项目的分层:
Controller 层、Service 层、Repository 层,以及它们之间的关系

给自己看:依赖图

想排查有没有循环依赖?让 AI 画出模块依赖:

请生成依赖关系图,标注出:
- 哪些 Service 被多个模块依赖(核心服务)
- Service 之间是否存在循环依赖(用虚线标注警告)

几个实用建议

1. 不用把所有代码都给 AI

给太多了,AI 分析起来也累。挑核心文件就行:Application 启动类、主要的 Controller、Service、Repository。

2. 分模块画图

项目太大?别想着一张图包罗万象。先画整体概览,再针对核心业务模块画详细图。

3. 让 AI 用中文标注

默认生成的图可能是英文的,记得在 Prompt 里强调"用中文标注",好读很多。

4. 图要定期更新

代码在变,图也要跟着变。每次大改动后,让 AI 重新生成一张,几分钟的事。

也要说点实话

AI 生成的图不是完美的。

有些动态的依赖关系(比如通过反射、动态代理调用的),AI 看不出来。有时候它也会理解错,把不相关的类连在一起。

所以把它当作一个"快速理解工具",而不是"绝对真理"。

拿到的图,最好对照代码过一遍,有不对的地方手动改一改。

最后

图这东西,最重要的是"有用",而不是"好看"。

一张粗糙但准确的草图,比一张精美的空图要有价值得多。

AI 让我们低成本地获得这些草图。不用纠结格式,不用纠结美观,先把结构理清楚再说。

下次接手陌生项目,别急着翻代码,先让 AI 帮你画张图。

看着那张图,你会发现,原本复杂的项目,好像也没那么可怕了。

附:几个能用的 Prompt

分析这些 Spring Boot 代码的模块依赖关系,生成 Mermaid 架构图,用中文标注

生成时序图,展示用户下单流程的每一步调用(从 Controller 到 Repository)

这个项目的 Service 层有循环依赖吗?生成依赖图,标注出来

生成分层架构图,展示 Controller、Service、Repository 三层的关系

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐