LINUX SB 快照站

关于 dsh 插件化的一些零散思考精华

标题历史 (1)

原帖: linux.sb/topic/13207 · 共 3 楼 · 标题快照 2026-08-18 23:10:31

楼主
发帖 2026-08-17 09:30:41 · 快照 2026-08-17 20:19:13
  1. 无论怎么美化,核心宿主Host和插件之间必然存在“信任鸿沟”。宿主必须永远假设插件是“恶意的”或“会崩溃的”。这种“不信任”带来的隔离开销,是插件化体系永远无法抹去的技术债务。
  1. 如果你们的业务变更频次低,或者对极致性能有要求,“插件化”本身就是过度设计。单体架构的确定性,远胜于插件化的灵活性。
  1. 插件数从 10 到 100,复杂度增长是 10 倍;从 100 到 1000,复杂度增长是 100 倍。治理工具链的投入必须随插件规模线性增长,否则体系必然在临界点崩塌。
  1. dsh基于 Cordis把“内核”精简到极致——内核只负责“加载顺序计算”和“依赖注入容器”。相比之下,VS Code 的内核(Electron+Extension Host)重得多。dsh 这种设计让插件能触及底层调度,扩展上限极高。
  1. Profile(配置组合)+ Patch(分层覆盖)机制,让插件体系从“拼图模式”进化为“乐高模式”。同一套代码基,可以组合出 CLI 工具、Web 服务、Agent 三种完全不同的产品形态,这是传统插件体系难以做到的。
  1. 状态快照与恢复:这是 dsh 最被低估的创新。它把插件实例的运行时状态序列化到磁盘,实现了真正意义上的“零成本闲置”。传统插件卸载即丢失状态,dsh 可以“冻结/解冻”,这对 AI 会话的连续性至关重要。
  1. TypeScript 的类型魔法极其脆弱:Cordis 大量依赖 TypeScript 的 Conditional Types 进行 DI 校验。这在编译期很美好,但一旦业务代码中存在 any 或第三方库类型不严格,整个类型推导链会瞬间崩断,退化为运行时 Cannot read property of undefined。相比之下,VS Code 用进程隔离(IPC 序列化)虽然慢,但类型边界极其清晰。
  1. 允许 Agent 在运行时挂载/卸载插件,技术上很酷,但在企业合规审计面前是灾难——你无法回答“10 分钟前,Agent 到底用了哪个版本的插件处理了那份合同?”。dsh 的这种动态性,把“可追溯性”的成本全甩给了上层应用,自己则置身事外。
  1. 当 Profile 合并了三层 Patch,依赖注入又涉及异步初始化,一旦启动报错,堆栈信息里全是 Cordis 框架内部的 Promise 链,业务开发者根本看不出是自己的锅还是配置的锅。VS Code 虽然也有这个问题,但因为有进程隔离,至少能看日志分堆。
#1
发帖 2026-08-17 09:31:57 · 快照 2026-08-17 20:19:13

确实零散,都是1