专栏

Cordis 插件框架

逐行读懂 dsh 底层的插件框架 Cordis:Context、服务系统、事件分发、fiber 生命周期、作用域与热重载。

共 12 篇 · 按阅读顺序排列

  1. 1 Cordis 专栏:学习路径与目录 逐行读懂 dsh 底层的插件框架 Cordis——从第一个插件到 fiber 生命周期、事件分发、作用域与热重载,全部结合 vendored 源码讲解。
  2. 2 第一个插件:三种形态与最小运行环境 Cordis 插件的三种合法形态、Config 校验、以及让插件真正跑起来的三种启动方式——全部配上可运行代码。
  3. 3 Context:依赖容器与 Proxy ctx 不只是"一个对象"——它是 Proxy、是原型链的起点、是 146 行里装下整个框架入口的设计。逐行读 context.ts。
  4. 4 服务系统:provide 与 Service 基类 服务如何注册进 ctx、Service 基类构造器做了什么、可调用服务与拦截配置合并——读 service.ts 与 reflect.ts。
  5. 5 依赖注入:inject 与门控 「等依赖就绪再启动」是怎么实现的——Inject.resolve、epoch、notify 级联加载,全部从 fiber.ts 源码讲起。
  6. 6 事件系统(上):五种分发模式 emit/parallel/serial/bail/waterfall 的实现原理——events.ts 全文精读,waterfall 的实现只有 9 行。
  7. 7 事件系统(下):类型安全与作用域 声明合并如何让事件名与参数获得类型约束、Context.filter 如何实现作用域过滤、internal/* 内部事件全家福。
  8. 8 fiber 与 effect:可逆副作用 ctx.effect 的四种形态、disposables 的逆序清理、epoch 保险与 EffectMeta 诊断树——fiber.ts 核心机制精读。
  9. 9 生命周期:fiber 状态机 PENDING → LOADING → ACTIVE → UNLOADING → DISPOSED——fiber 状态机的完整迁移图、_reload/_unload 的实现与三条铁律。
  10. 10 作用域:isolate 与上下文继承 isolate/intercept 的原型链实现、Service 的作用域判定、dsh 按作用域过滤事件——"每个 agent 一个世界"的完整原理。
  11. 11 热重载:fiber.update 与 HMR 改配置不重启的秘密——internal/update waterfall、fiber.update/restart 的实现,以及 dsh 配置热重载的完整链路。
  12. 12 实战:用 Cordis 组装一个微应用 毕业项目——配置树 + 依赖注入 + 事件总线 + 优雅关机,用 Cordis 组装一个完整的微型任务服务,并对照 dsh 检验学习成果。

← 全部专栏