为了账号安全,请及时绑定邮箱和手机立即绑定

Golang 事件:用于插件架构的 EventEmitter / dispatcher

Golang 事件:用于插件架构的 EventEmitter / dispatcher

Go
弑天下 2021-09-10 21:35:04
在 Node.js 中,我能够使用 EventEmitter 轻松地制作 WordPress 克隆,将钩子系统复制并构建到 CMS 核心中,然后插件可以附加到该核心。我现在需要为我编写并移植到 Go 的 CMS 提供相同级别的可扩展性和核心隔离。基本上我现在已经完成了核心,但为了使其真正灵活,我必须能够插入事件(挂钩)并使插件附加到具有附加功能的这些挂钩。我不关心重新编译(动态/静态链接),只要您不必修改核心来加载插件——永远不应该修改 CMS 核心。(如 WP、Drupal 等)我注意到有一些相当不知名的项目,试图在 Go 中实现事件,看起来有点类似于 Node.js 中的 EventEmitter:https://github.com/CHH/eventemitterhttps://github.com/chuckpreslar/emission由于上面的这两个项目在某种程度上没有获得太多的流行和关注,我觉得这种思考事件的方式现在可能是我们应该如何在 Go 中做到这一点?这是否意味着 Go 可能不适合这项任务?通过插件制作真正可扩展的应用程序?Go 似乎没有将事件内置到其核心中,而且 RPC 似乎不是将插件集成到核心应用程序中的有效解决方案,因为它们是本地内置的,就好像它们是主应用程序本身的一部分一样。将插件无缝集成到您的核心应用程序中的最佳方式是什么,以获得无限的扩展点(在核心中),而无需在每次需要连接新插件时操作核心?
查看完整描述

1 回答

  • 1 回答
  • 0 关注
  • 336 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信