一切的开始
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); Executor
与Event
耦合, 造成了使用上的不方便;- 幽灵一般的内存泄漏问题;
- 不得不一天内发 4-5 个版本修复由
Graia Application
发现的 bug; - 没有清晰的文档;
- 内部代码极度 Complex (这点到现在也一样, 而让我感到惊讶的是我自己从未忘记代码中任何的细节...)
- And More..
我非常感谢当时的我, 人的本身是由自己的过去堆砌而来, 但又存于现在, 并将过去与现在连接起来,
若没有这一把魔剑, 我就不能劈开一堆用 pure call
方式引发的问题, 也不能做到现在如此优雅的代码复用.
而现在, 我正在将更多的精力投入 Avilla
, 也就是 Graia Application
的下一代, v5
版本,
我相信力求完美, 可不断完善的抽象实现能打破 XKCD 927 的诅咒.
牢骚就发到这里, 我准备谈谈关于用 Broadcast Control
内部的 API 实现更加酷炫的功能的事情, 这个部分被我称为 遁入深渊(Into the abyss),
但事实上, 我认为这并没有普罗大众想象的 "黑暗深邃" 的程度, 当然, 前提是我有保证每一段落都写的清晰....
起码我会尽力的.