82 lines
3.0 KiB
Markdown
82 lines
3.0 KiB
Markdown
---
|
||
|
||
#### 需求拆解:
|
||
**[类变更类通知]** Vo、Dto、Model、Entity **目前只针对****<u>修改 </u>****<u><font style="background-color:#FBDE28;">删除也需要</font></u>**
|
||
|
||
**需要展示的内容:**
|
||
|
||
修改人、修改时间 (方便后续前端对接)
|
||
|
||
对象变更细节:变更了(增删改查)哪些字段 + 字段说明
|
||
|
||
影响范围:类的变更影响了哪些接口的使用(展示出影响的接口List)
|
||
|
||
* **入参影响** --> dto改变 --> 展示出影响的接口List
|
||
* **类转换影响** --> dto到entity的转换(这种类型需要 配置开关 判断是否需要检测) --> 展示出Entity类?
|
||
* **对前端的影响** --> Vo的变动 --> 展示出影响的接口List
|
||
|
||
|
||
|
||
#### 一、请求链路
|
||
Push
|
||
|
||
↓
|
||
|
||
Gitea + act_runner
|
||
|
||
↓
|
||
|
||
Pipeline
|
||
|
||
↓
|
||
|
||
GitDiff获取变更
|
||
|
||
↓
|
||
|
||
JavaParser解析(AST Controller变化\DTO变化\VO变化\ENTITY变化)
|
||
|
||
↓
|
||
|
||
企业微信通知
|
||
|
||
|
||
|
||
#### 二、架构&技术选型
|
||
| 组件 | 方案 |
|
||
| --- | --- |
|
||
| Git Diff | Git |
|
||
| 源码解析 | JavaParser |
|
||
| 引用分析 | JavaParser Symbol Solver |
|
||
| Spring Endpoint扫描 | Spring Mapping AST |
|
||
| 通知 | 企业微信机器人 webhook |
|
||
| CI集成 | Gitea Actions |
|
||
|
||
|
||
|
||
|
||
#### 三、分层说明
|
||
| **<font style="color:rgba(20, 20, 20, 0.92);">层级</font>** | **<font style="color:rgba(20, 20, 20, 0.92);">组件</font>** | **<font style="color:rgba(20, 20, 20, 0.92);">职责</font>** |
|
||
| :--- | :--- | :--- |
|
||
| **<font style="color:rgba(20, 20, 20, 0.92);">触发层</font>** | <font style="color:rgba(20, 20, 20, 0.92);">Git Push</font> | <font style="color:rgba(20, 20, 20, 0.92);">开发者提交代码,触发 CI 流程</font> |
|
||
| **<font style="color:rgba(20, 20, 20, 0.92);">CI/CD 层</font>** | <font style="color:rgba(20, 20, 20, 0.92);">本地 Gitea + act_runner</font> | <font style="color:rgba(20, 20, 20, 0.92);">监听 Push 事件,编排流水线任务</font> |
|
||
| **<font style="color:rgba(20, 20, 20, 0.92);">解析层</font>** | <font style="color:rgba(20, 20, 20, 0.92);">GitDiff + JavaParser</font> | <font style="color:rgba(20, 20, 20, 0.92);">获取 diff,按 AST 解析 Controller/DTO/VO/Entity 变更</font> |
|
||
| **<font style="color:rgba(20, 20, 20, 0.92);">通知层</font>** | <font style="color:rgba(20, 20, 20, 0.92);">企业微信</font> | <font style="color:rgba(20, 20, 20, 0.92);">将分析结果推送给相关开发人员</font> |
|
||
|
||
|
||
|
||
|
||
#### 四、通知模版
|
||
|
||
模版已按类类型拆分至 [notify-templates/](./notify-templates/) 目录:
|
||
|
||
| 类类型 | 模版文件 | 影响范围段落 |
|
||
|--------|----------|--------------|
|
||
| Dto | [dto.md](./notify-templates/dto.md) | request + 类转换 |
|
||
| Vo | [vo.md](./notify-templates/vo.md) | response + 类转换 |
|
||
| Entity | [entity.md](./notify-templates/entity.md) | 类转换 |
|
||
| Model | [model.md](./notify-templates/model.md) | 类转换 |
|
||
|
||
详见 [notify-templates/README.md](./notify-templates/README.md)(含企微颜色样式、路径、字段说明规则)。
|
||
|