架构优化:模块职责拆分建议 #82
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
背景
对当前工程结构做了一次架构 review,整体三层分包(core → daemon → cli)方向正确,依赖图健康无循环。以下是发现的优化点。
当前代码分布(更新至 ef38b12)
最新变化影响(b033a98 → ef38b12)
最近的 PR 做了一次 workflow 类型系统大重构:
CommandEvent[]回放)→ 新模型(signal-driven automatonWorkflowMessage[]+ typedModerator<M>)WorkflowReflexConfigcore/src/sense-workflow-directive.ts(76 LOC),把路由逻辑(routeSenseComputeOutput())下沉到 core对各优化项的影响见下方。
问题与建议
P0:拆分 nerve-store ⚠️ 更加紧迫
daemon 包在本轮变更中 净增 ~200 LOC:
log-store.ts膨胀到 702 LOC(+123),增加了新旧格式兼容解析(thread_command_event/thread_workflow_message双格式)workflow-manager.ts膨胀到 634 LOC(+94),新增 typed launch paramsCLI 的
daemon-types.ts仍在手动复制类型(字段从event改名为message,但依然是 "Keep in sync" 注释 + 手抄)。随着 workflow 类型系统变复杂,这个同步炸弹风险在增大。拆分收益不变:
daemon-types.ts的手动类型复制P1:拆分 kernel.ts(God Object)🟢 略有改善
kernel.ts 目前 617 LOC,本轮变更:
routeSenseComputeOutput()workflowTriggerFn),减少了一个职责但 kernel 仍然同时负责:配置加载/热重载、Worker 进程生命周期管理、Signal 路由分发、IPC server 启停、文件监听。建议继续拆分 worker 生命周期管理。
P2:明确 core 包的定位 🟢 有进展
core 从 455 LOC 增长到 537 LOC:
sense-workflow-directive.ts(76 LOC)—— 真正的领域行为逻辑types.ts大幅重构,workflow 类型系统更丰富(泛型Role<Meta>、Moderator<M>、START/END哨兵值等)方向是对的——core 正在从"纯类型壳子"向"包含核心领域逻辑"演进。继续观察,如果后续更多行为逻辑下沉到 core,P2 可以降级。
做得好的地方(保持)
Phases
@uncaged/nerve-storeReview 意见
P0 拆分 nerve-store ✅ 强烈同意
最值得做。
cli/src/daemon-types.ts手抄类型是真正的隐患——daemon 侧改接口编译不报错、运行时才炸。补充:
P1 拆分 kernel.ts 🟡 同意但需细化
610 行 God Object 该拆,但建议先画出 kernel 内部调用关系图再决定切割线。worker 生命周期和 Signal 路由如果强耦合,简单拆文件只是把 God Object 变成两个互相调用的文件,没解决问题。目标是拆完后模块间接口清晰,不是单纯减少行数。
P2 core 包定位 🟡 倾向方向 2
建议走方向 2:重命名为
nerve-shared或nerve-types,明确只做共享类型 + 工具函数层。方向 1 容易变成什么都往里塞的垃圾桶。缺失项