Skip to content

Commit

Permalink
docs: 更新项目重构.md
Browse files Browse the repository at this point in the history
  • Loading branch information
Windsland52 committed Dec 18, 2024
1 parent 74aaf2a commit 645747f
Showing 1 changed file with 30 additions and 16 deletions.
46 changes: 30 additions & 16 deletions docs/zh_cn/develop/项目重构.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,37 +2,51 @@

## 资源

注意对其修改时不要落下任何用到该资源的任务
注意对其修改时不要落下任何用到该资源的 node

> [!TIP]
>
> 善用全局搜索
## 任务
## Node

### sub 任务
### Sub Node

这里将 `is_sub` (已废弃) 值为 `true` 的任务称为 `sub 任务`
这里将 `is_sub` (已废弃) 值为 `true` 的 node 称为 `sub node`

重构 `sub 任务` ,有以下几个步骤:
重构 `sub node` ,有以下几个步骤:

1. 判断该 `sub 任务` 在当前任务 `next` 列表中是否处于最低优先级(即直接放到当前任务 `interrupt` 列表中对实际效果有无影响)
2. 若该 `sub 任务` 不处于最低优先级,重构方法是将当前任务的 `next``interrupt` 加入 `sub 任务` (原 `next``interrupt` 为空可直接进行,不为空则需考虑是否冲突);若该 `sub 任务` 处于最低优先级,重构方法为直接放到当前任务的 `interrupt`
3. 若该 `sub 任务` 不处于最低优先级,且步骤2的改动会引起冲突,则需要重新考虑任务逻辑
4.`sub 任务``is_sub` 属性删除
1. 判断该 `sub node` 在 当前node `next` 列表中是否处于最低优先级(即直接放到 当前node `interrupt` 列表中对实际效果有无影响)
2. 若该 `sub node` 不处于最低优先级,重构方法是将 当前node 的 `next``interrupt` 加入 `sub node` (原 `next``interrupt` 为空可直接进行,不为空则需考虑是否冲突);若该 `sub node` 处于最低优先级,重构方法为直接放到 当前node 的 `interrupt`
3. 若该 `sub node` 不处于最低优先级,且步骤2的改动会引起冲突,则需要重新考虑任务逻辑
4.`sub node``is_sub` 属性删除

> [!WARNING]
>
> 以上全部改动均需考虑所有使用该 `sub 任务` 的任务,不要落下!
> 以上全部改动均需考虑所有使用该 `sub node` 的 node,不要落下!
### 其它任务
### 其它 node

#### 简化任务链
接下来按照其它 node 的重构目的来分别说明如何重构。

##### 目的
#### 规范 node 名称

简化 pipeline、理清逻辑
如果只是想规范 node 名称,则只需通过 vscode 的全局搜索、替换功能完成即可。
不过需要注意替换时带着双引号替换,以免出现包含该 node 名的其它任务也被修改。

##### 操作
#### 简化任务流程、减少耦合

部分任务可放在 `当前 task``父 task`(或 `父 task``父 task` 等等)的 `interrupt` 中,若一味的放入 `next` 则会导致任务链过长,影响 pipeline 的可读性和简洁性。
先行阅读 [Node 连接](./Pipeline%20编写.md#node-连接)

部分node 可放在 当前node 的 祖先node 的 `interrupt` 中。
注意移动后将不必要的 next node 删除,避免在 `interrupt` 中继续执行主任务链,导致后续任务报错后跳回 祖先node。

#### 合并相同功能 node

如果有多个 node 都实现了相同的功能,则可以考虑合并为一个 node。

步骤为:

1. 合并前检查该 node 后续是否有无强相关 node,如有则先考虑将其拆分出来。
2. 合并时所有 node 改用相同规范名称。
3. 合并后检查该 node 在所有任务中的位置是否正确。如本该在 interrupt 中的 node 被放到了任务链主干的 next 部分,有问题则需要重新调整。

0 comments on commit 645747f

Please sign in to comment.