关于Wecube插件体系中前端工程方面的看法
背景
大家都知道在WeCube2.0中我们把绝大部分功能都抽象成一个个的插件,在这样的一个体系下,各个插件独立开发,在使用的时候自由灵活组合,WeCube的使用者可以根据自身需求和喜好来选择他想要的插件来解决他的问题。当然,这一切的前提是我们有一个庞大的插件市场来供用户选择,而建设这样一个插件市场,我们需要依赖社区的力量。
插件的前端工程里要做哪些事情
让我们来看看,作为一个插件开发者在插件的前端工程里要做哪些事情。基座(WeCube前端)是采用VUE技术栈开发的单页面应用,插件的前端页面要注入到基座中,基座要求插件前端使用相同的技术栈;因为是单页面应用,路由是由前端自己控制的,因此插件的路由模式也应该和基座一致;因为权限的控制是在基座中做统一处理,因此所有和后端的API交互都应该使用基座暴露的调用实例;为保证基座能拿到插件页面的所有资源,插件页面各种资源path的设置也要符合基座的要求;等等这些问题。基座要做的就是要描述清楚插件的前端工程应该长成什么样子,然后插件开发者根据基座的描述去搭建插件的前端工程。这些东西看似简单,其实是挡在插件开发面前的一座山,往往描述的是一个样子,理解的是另外一个样子,做出来的又是一个样子,最后就是辛辛苦苦开发的插件却不能在基座注册成功还找不到原因,而且很多插件的前端并不复杂,这部分工作很可能不是由专门的前端开发人员去完成,这样的话插件的开发成本就更高了。
想法
要依赖社区开发者的力量,我们就得降低开发成本,要让开发者快速的创建符合基座要求的前端工程,最直接的做法是提供一个脚手架。所谓脚手架其实就是帮助我们快速搭建项目的工具,通常只需要跑一个命令就可以帮助我们生成一个项目,例如:
wecube create <plugin_name>
开发者不需要关心目录结构、路由模式、工程化的相关配置等等。同时,为了提高开发效率和保持页面风格和交互的一致性,我们还应该提供一套组件库供插件开发者使用,让插件开发者更专注于业务逻辑,而不需要在前端工程上花费过多精力。
不管是脚手架还是组件库,都不一朝一夕就能做好的,都需要我们长期的投入,去不断的维护、优化和升级。要做好并不容易,但是成年人的世界,好像除了容易变胖,也没有什么容易的事了。