为什么做Rubick其实Rubick1.x的初衷是为了解决自身的问题:特别是需要一个支持自定义插件的桌面应用程序,为用户简化安装庞大的桌面应用程序。而且涉及到数据安全问题,外挂只能贡献给公司内网,不能对外公开。Rubick2.0阶段重新设计了一套基于npm的插件管理系统,方便开发者参与插件的开发。扩展插件的边界和类型,开发者可以开发拉比克系统插件。这时候,拉比克就变成了高级电子包。开发者可以高自由度实现系统能力,不受限于其他开放API,不局限于搜索调用,只要Rubick运行,插件就运行。Rubick的自我介绍Rubick是一个基于npm插件管理,自由集成丰富插件的基于electron的开源工具箱。拉比克(Rubick)是dota中的英雄之一。它的核心技能是以外挂的方式使用其他英雄的技能。非常符合这个工具的设计理念,所以取名为拉比克。核心技能展示1.基于npm管理插件插件管理最初的设计是将插件打包成.zip压缩包,然后将压缩包上传到CDN,点击安装下载解压.然而,这种方式有几个缺点。需要数据存储服务器来存储这些压缩文件,需要付费,开源开发者很难维护。打包机制和解压机制繁琐,对开发者不友好。直到看到PicGo作者关于PicGo插件设计思路的文章,突然觉得基于npm的包管理方式正是我想要的。它重量轻,省钱。Penserver存储开销:PicGo插件的设计其实还有一个问题,因为它是基于npm的管理方式,所以开发者在使用npm之前需要提前安装好node环境。但这在当下是可以接受的,因为拉比克目前的定位也是面向开发者的开源工具箱。当你点击安装插件时,实际上执行的是npminstallxxx.2。系统插件能力拉比克的另外一个最大的能力就是支持系统插件。有了系统插件,我们不局限于搜索和使用插件。只要rubick在运行,插件就在运行。这对于一些特殊的场景是非常有价值的。比如我要实现一个定时提醒我喝水的插件,如果我退出插件界面,可能就不行了。但是做一个系统插件,即使退出插件,rubick还是会在后台运行插件提供的钩子。这个灵感也来自于PicGo的插件生命周期设计。下面来演示一下系统插件:有了系统插件,我们可以实现屏幕取色器插件、定时提醒插件、超级面板插件……另外,由于rubick的系统插件是在主进程中运行,我们可以使用系统插件拥有更多的能力。比如rubick可以看作是electron的二次封装,不需要任何electron的构造和封装。基于系统插件,我们可以实现另一个桌面应用!归根结底,做开源最大的动力还是因为热爱,完全是非营利性的。希望我的所作所为能给有需要的朋友提供一些帮助和方向。程序员是最天真可爱的。但愿恶意攻击不要击垮程开元的力量。热情的。附:rubickgithubrepositoryrubick文档
