白皮书
车联网设计与实现:搭建可靠、高效、符合行业需求的车联网平台 →

让开源生生不息,EMQ 成为 Vue.js 定期捐赠者

2021-7-2

让开源生生不息,EMQ 成为 Vue.js 定期捐赠者

前言

近日,EMQ 通过 Open Collective 平台向开源项目 Vue.js 进行了捐赠。未来,EMQ 将持续向这一在前端开发领域广泛应用的 JavaScript 框架提供定期捐赠,支持该项目良性运营,继续为全球开发者提供便捷高效的前端开发方式。

Vue.js 是一套用于构建用户界面的渐进式框架,作者尤雨溪最早于 2014 年 2 月发布并开源了这一框架,时下已经是最为流行的前端开发框架,目前已经在 GitHub 上有 185K Stars 和每月近 200 万的下载量数据。与其它大型框架不同的是,Vue 被设计为可以自底向上逐层应用。Vue.js 的核心库只关注视图层,不仅易于上手,还便于与第三方库或既有项目整合。

EMQ 与 Vue.js 的渊源由来已久。2013 年,EMQ 开源项目在 GitHub 发布。随着用户数量的增长和企业级需求的出现,对图形化界面操作和网站质量等也都提出了更高的要求。为此,EMQ 陆续在产品、文档、官网等都使用 Vue.js 来进行开发。如今,EMQ 的核心产品 EMQX 已成为在全球市场广泛应用的 MQTT 消息服务器。愈发完善的产品和项目背后,我们从 Vue.js 项目中获得了许多支持。

EMQ & Vue.js

Dashboard

EMQX 开源 MQTT 消息服务中间件拥有强大的性能和完善的功能,为了让用户更加直观方便地使用 EMQX,我们也提供了完整的图形化界面,即 EMQX Dashboard。而 Dashboard 正是基于 Vue.js 开源项目构建的。得益于 Vue 的诸多特性,我们得以快速、完整地构建出这样出色的图形化界面来满足用户的需求,帮助用户提升开发和使用效率。

例如,基于 Vue 的数据驱动渲染的特性,我们的 Dashboard 可以使用户快速便捷地查看到各类实时的指标数据及其变化,而不用每次都重新刷新整个页面;基于简单实现组件化的特性,我们可以对每个页面中相同的功能快速复用,配合一些三方组件,让用户可以在 Dashboard 中快速完成规则引擎的 SQL 编写等功能。

image.png

文档

除了功能开发,我们也利用 Vue 实现了一个较为完整的 EMQX Broker 文档站点。文档是整个产品和内容展现重要组成部分。一个好的产品,离不开一个好的文档。通过对各类文档框架和工具的对比调研,我们最终决定使用基于 Vue.js 驱动的 VuePress 静态网站生成工具来为 EMQX 文档开发在线站点,给用户提供方便快捷高效的文档查阅方式和入口。

image.png

官网

在之前的 EMQ 官网开发中,我们一直采用了传统的 HTML + JQuery 的方式来编写官方网站,这种方式的开发体验较为复杂和低效。为了提高开发效率,同时兼顾 SEO,我们在之后的网站开发中选择了 Nuxt.js —— 一个基于 Vue.js 的服务端渲染应用框架,同时也可以生成静态站点。这让我们可以通过编写熟悉的 Vue.js 单文件组件方式完成网站开发,体验 Vue.js 的一切特性的同时也在 SEO 方面获得了帮助。

image.png

工具

除上述 Vue.js 与 EMQ 各类应用的融合外,我们还使用 Vue.js 开发了具有 GUI(图形用户界面)特性的开发者工具,基于 Vue.js + Electron 而开发的一款 MQTT 5.0 跨平台桌面客户端工具 —— MQTT X,方便用户使用图形化功能,快速开发和调试 MQTT Broker。在 MQTT X 的开发中,我们借助了 Vue.js 的很多能力,从而通过这样的应用工具,为更多的使用者和开发者带来便利。

image.png

助力开源

一直以来,我们都对 Vue.js 开源项目及其作者报以衷心的感谢。同为开源项目的发起和运营方,我们深知维护一个开源项目的不易。现如今,虽然开源项目遍地开花,但要想保持稳定健康的运营并持续为社区带来价值,需要项目维护者付出比我们想象中更多的精力甚至是经济投入。事实上,有很多曾经颇受关注的项目到后期都由于种种原因被原作者放弃,陷入了无专人维护的状态。这对于开源领域来说是非常遗憾的事情。

EMQ 认为,对于开源项目,特别是个人开源项目来说,除了来自社区的认可与代码贡献,经济支持也是鼓励项目维护者的重要方式。Vue.js 项目作者尤雨溪也曾提到,虽说开源的初心并不是为了获取回报,但项目维护者也需要通过足够的认可和支持来获得坚持下去的动力和意义,这同时也能鼓励更多的开发者投身开源,使开源生态良性发展。因此,我们决定成为 Vue.js 项目的定期捐赠者,希望能够为其未来的发展尽一份力。

开放源码与社区协作生产方式的出现,使整个产业减少了很多「重复造轮子」的工作,极大提升了工作效率,而这种积极影响是具有延伸性的。就像 EMQ 借助了 Vue.js 开源框架进行了用户界面层的开发,我们的用户又将使用 EMQX 开源 MQTT Broker 去进行物联网平台的底层构建,而我们用户的下一层用户又会通过他们提供的物联网平台获取更多的应用服务。如此,各行业通过开源获得技术与能力的共享协作,整个人类社会将获得高效积极的长足发展。而这便是开源的意义。

我们相信,在越来越多的支持下,开源生态将更加欣欣向荣。EMQ 将与众多优秀的开源项目与公司一起,「通过世界级开源软件产品,服务人类未来产业与社会」。