一切的开始

Broadcast Control 是我在学校学习的空余设计, 并赋予其形体的作品, 到现在(写作时间为 2021/8/30)差不多有一年多了, 而它也不负我的期望, 承载起了 Graia Application, 还有即将作为其下一代的 Avilla 中事件总线的使命. 一直以来, 这都是我在开发时极其锋利的魔剑, 而当初.....

  • Dispatcher 的生命周期的前身是基于生成器而非现在的重载方法, 导致其性能的极度低下;
  • 性能只有 3000-4000 o/s, 相对的, 现在的最新版则是 14000 o/s, 使用例如 pyston 或者是 pypy 则能达到更恐怖的 2.8w o/s(tested on AMD X4-640 3Ghz);
  • ExecutorEvent 耦合, 造成了使用上的不方便;
  • 幽灵一般的内存泄漏问题;
  • 不得不一天内发 4-5 个版本修复由 Graia Application 发现的 bug;
  • 没有清晰的文档;
  • 内部代码极度 Complex (这点到现在也一样, 而让我感到惊讶的是我自己从未忘记代码中任何的细节...)
  • And More..

我非常感谢当时的我, 人的本身是由自己的过去堆砌而来, 但又存于现在, 并将过去与现在连接起来, 若没有这一把魔剑, 我就不能劈开一堆用 pure call 方式引发的问题, 也不能做到现在如此优雅的代码复用.

而现在, 我正在将更多的精力投入 Avilla, 也就是 Graia Application 的下一代, v5 版本, 我相信力求完美, 可不断完善的抽象实现能打破 XKCD 927 的诅咒.

牢骚就发到这里, 我准备谈谈关于用 Broadcast Control 内部的 API 实现更加酷炫的功能的事情, 这个部分被我称为 遁入深渊(Into the abyss), 但事实上, 我认为这并没有普罗大众想象的 "黑暗深邃" 的程度, 当然, 前提是我有保证每一段落都写的清晰.... 起码我会尽力的.