From 645747fdde8e2468c954f2571f5938763b58e94e Mon Sep 17 00:00:00 2001 From: Windsland52 <86581225+Windsland52@users.noreply.github.com> Date: Wed, 18 Dec 2024 16:22:49 +0800 Subject: [PATCH] =?UTF-8?q?docs:=20=E6=9B=B4=E6=96=B0=E9=A1=B9=E7=9B=AE?= =?UTF-8?q?=E9=87=8D=E6=9E=84.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...71\347\233\256\351\207\215\346\236\204.md" | 46 ++++++++++++------- 1 file changed, 30 insertions(+), 16 deletions(-) diff --git "a/docs/zh_cn/develop/\351\241\271\347\233\256\351\207\215\346\236\204.md" "b/docs/zh_cn/develop/\351\241\271\347\233\256\351\207\215\346\236\204.md" index f79dbdc5..631e3adc 100644 --- "a/docs/zh_cn/develop/\351\241\271\347\233\256\351\207\215\346\236\204.md" +++ "b/docs/zh_cn/develop/\351\241\271\347\233\256\351\207\215\346\236\204.md" @@ -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 部分,有问题则需要重新调整。