道招

对微内核的一点执念

如果您发现本文排版有问题,可以先点击下面的链接切换至老版进行查看!!!

对微内核的一点执念

自从知道了这个名词,咋一听觉得很神秘的,等看了网上的例子才发现其实没有那么高不可攀,等对自己周围主要产品的深入了解后发现这个思想原来在我们的周围很常见的,比如webpack,nginx等。 之前还写过一篇《以webpack为例来看微内核架构》 微内核系统一般分为两个部分——核心系统和插件系统,核心系统通过注册表感知插件信息。

在了解了几个微内核系统后,觉得很实用,很自然的就有想将这套理念运用到自己的项目中的想法,比如自己的web项目当中,但是按照自己的理解感觉这样可能并不可行,或者说就算强行实现的话可能也不纯粹。其中一个问题就是注册表怎么弄?微内核系统一般都是这样的,有个配置文件,除了配置系统参数外还会配置准备使用的插件,然后有一个“编译”过程,这个过程会读取配置文件,然后生成注册表,也就是说后续哪些插件可用在“编译后”就已经定型了。我们常规的web项目在运行时就已经是打包之后的,而哪些插件是否可用在当时打包时并不知道。要么就是我们推迟注册表的实现,具体怎么说呢? 我们可以认为所有的插件都可用,但是不同用户的插件的差异性怎么体现呢?我们可以在进入web项目后就读取自己的配置,一般可能调用后台接口来获取不同用户的不同权限、插件信息,这种方式有些弊端:

  1. 实现不同用户操作行为时功能的差异性需要程序员根据写代码时自觉完成隔离。
  2. 想让插件间相互依赖比较困难,我们不太好有个遍历所需插件的过程。

我一直是想自己开发一个简易的微内核系统,个人认为只有自己开发一个才能更深刻的理解微内核的精髓。 比如做一个app,然后有一个插件市场,在里面可以选择安装各种插件,安装后就可以实现对应的功能,也可以尝试插件中的相互依赖使用,比如有一个订单系统,一个支付系统和一个通知系统,当启用了通知系统后,订单系统和支付系统的通知就可以通过通知系统来通知了,否则就走各个系统自己的通知流程。

上面只是自己想法的一部分,后面的后续会继续完善。

更新时间:
上一篇:kotlin报错Unresolved reference: supportFragmentManager下一篇:el-form-item、a-form-model-item实现多个input、select关联校验

相关文章

eclipse添加插件

eclipse做为当下最流行的开源IDE之一,Eclipse的一大优势就在于其无数优秀的插件。一个好的插件可以大大的提高我们的工作效率,学习如何安装Eclipse插件自然也是必修课了。下面介绍Ecli 阅读更多…

wordpress使用多说插件后带来的问题

今天本想做个新建个页面,做个联通账号在线解密页面,以解决部分网友在路由器中输入“正确的”联通宽带的账号但无法拨号成功的问题,但是发现我使用自定义模板的方式创建的页面并没有如我的意愿来显示,而只是光秃秃 阅读更多…

eclipse安装tomcat插件

tomcatPlugin插件下载和安装方法 下载安装Sysdeo Tomcat插件,用来管理Tomcat服务器,提供断点调试功能,并且能自动建立Tomcat环境,修改其配置文件,是一个不错的T 阅读更多…

CKEditor富文本编辑器职责分离

背景 CKEditor富文本 编辑器 (生产版本1.1.1及以前)里面包含富文本基础插件及当前最新的邮件特定的业务插件(签名、快捷回复、邀评、默认样式、选择颜色、插入图片、粘贴模式) O端 阅读更多…

添加了runcode运行代码插件

增加一个文本框用来运行代码(html/css/javascript) 使用方法 // 演示 window.alert("Hello world!"); You can 阅读更多…

从vuecli3学习webpack记录(零)整体流程

今天看了下自己之前写的从vuecli3学习webpack记录系列,感觉自己居然没有在一开始的时候把vuecli的 npm run serve 的整体流程在一篇文章里面完整的讲完,可能是因为打字打的手 阅读更多…

关注道招网公众帐号
联系博主