2019 年 Node-RED 社区调查

引言

这是我们首次面向整个社区进行的调查结果。

我们通过在 Slack、论坛和其他地方的互动与许多用户进行了交谈。这让我们对用户试图完成的具体任务有了很好的了解。但这通常是在他们寻求完成任务的建议或指导的背景下进行的。这可能会导致对用户实际在做什么产生误导性的看法;我们并不总能听到那些在没有社区帮助的情况下成功完成任务的用户的声音。我们也没有得到我们所看到问题的背景信息。

本次调查的目标是更全面地了解 Node-RED 的使用方式和应用场景,以及这是否与我们自己的看法相符。另一个目标是验证项目未来路线图的优先级。

摘要

  • 此次调查收到了大量的回复(871份),来自社区中相当广泛的横断面。
  • 虽然结果中没有出现重大意外,但它确实再次确认了我们的许多看法。
  • 大多数受访者以个人身份使用 Node-RED,用于家庭自动化和类似任务。
  • 然而,Node-RED 也被用于生产环境,并且商业用途正在不断增长。
  • JavaScript 是与 Node-RED 一起使用的主要语言,但 Python 和 Java 也占有相当大的比重。
  • 设备是运行 Node-RED 最常见的平台,其中树莓派(Raspberry Pi)遥遥领先。
  • 近三分之一的受访者使用独立的“开发”和“生产”系统,但他们没有任何自动化流程来在两者之间迁移。这也反映在书面评论中,受访者希望改进工作流程,包括版本控制、CI/CD 集成测试以及支持这些场景的文档。

您与 Node-RED

我们日常接触的用户中,绝大多数是在某种个人场景下使用 Node-RED,这一点在调查回复中得到了体现。

但我们并不总能了解到用户使用 Node-RED 的更广泛背景。本节旨在了解这一背景。

与调查中的许多问题一样,受访者可以选择所有适用于他们的答案。我们没有进一步定义“生产中”或“概念验证”等术语,而是留给受访者自行解读。

然后,我们希望更深入地挖掘非个人使用场景——即在教育和商业/专业环境中的使用情况。

总的来说,这些结果反映了我们对 Node-RED 使用情况的印象。其核心是大量的个人用户,但采用 Node-RED 的公司数量也在不断增长。

教育用途

Node-RED 在教育领域有巨大的潜力,但这在过去并不是我们项目资源投入的重点。

这些结果显示,有少数机构将 Node-RED 用作其课程材料的一部分。我们计划跟进这些受访者,了解更多细节,看看项目还能做些什么来支持这些活动。

专业用途

本节旨在面向在专业环境中使用 Node-RED 的用户。然而,许多受访者无论之前如何回答,都填写了这一部分。

这为我们提供了一个关于更广泛受访群体的良好背景视图,也可以筛选出仅限“专业”身份的用户群体。

然而,在进行了这种筛选后,结果的趋势基本没有变化。下面的图表反映了全部回复集。

不出所料,大多数受访者自认为是开发者。但在各种角色中都有很好的代表性。

Node-RED 的使用与技术栈中其他地方使用 JavaScript 之间存在自然的关联。Python 的高比例也不足为奇——库中有少量与 Python 相关的节点,并且在论坛上比其他语言更常被提及。我们在项目的核心部分没有做任何支持 Python 集成的工作,但这可能是我们想要重新审视的地方。例如,现有的 python-function 节点没有得到积极维护,在可用功能方面已经落后于核心的 Function 节点。

您与 Node-RED 2

命名是件难事。直到我们关闭调查并开始整理这些结果时,我才注意到我们有两个同名的部分。但这没关系。

这表明我们通过这次调查成功地接触到了具有不同经验水平的代表性用户。

在我们的用户对这些相关技术的经验方面,没有出现真正的意外。

在考虑未来如何帮助用户管理更大规模部署的计划时,值得注意的是用户对 Docker、无服务器(Serverless)和 Kubernetes 的相对缺乏经验。

家庭自动化用途的巨大比例与个人使用回复密切相关。边缘设备逻辑也值得注意。

您如何使用 Node-RED?

受访者主要以某种形式在本地运行 Node-RED,其中树莓派 2/3 最受欢迎。在云领域,IBM Cloud 最受欢迎,这反映了该项目的渊源,以及我们在 IBM Cloud 目录中提供了入门套件应用程序。

操作系统的分布在某种程度上是所运行设备类型的自然反映。Windows 10 的普及值得注意——我们并不在项目的核心部分常规地在 Windows 上进行开发和测试,而是依赖社区反馈问题。这并不理想,我们需要找到一种方法来解决这个问题。

这里需要注意的一个重要问题是“不确定”回复的比例很高——这意味着有一部分用户对 node.js 本身不太感兴趣,而是接受提供给他们的任何版本。

这里的回复范围将帮助我们确定需要在哪些方面提供更多的文档和示例。相当一部分询问版本控制的受访者并不知道“项目”功能。我们需要改进一些“项目”的用户体验,并考虑如何在某个时候默认启用它。

项目的一个关键要求是让用户能够更容易地拥有一个可以维护独立开发和生产实例的正式开发工作流程。

以下问题帮助我们确定哪些节点对用户很重要。

发布节点

发布节点是社区回馈的重要方式。许多用户发布了一两个节点,少数用户发布了更多。

发布节点的原因相当多样。高比例的受访者表示他们复制了现有节点,这有些令人惊讶。我们希望能够更深入地研究这些回复,找出*为什么*需要复制。

Node-RED 社区

了解社区如何参与项目的开发活动,将有助于我们实现让更多人贡献的目标。

用户面临的许多问题更多是关于“如何操作”类型的问题,而不是代码质量问题。这很好地反映了代码质量,但对于我们提供的文档和学习资源来说,反映得就不那么好了。

关于您

反馈

调查询问了受访者他们认为 Node-RED 缺少的三样东西,以及他们想分享的任何其他反馈。这产生了 1475 条评论,其中 1166 条被确定为我们可以从中学习的反馈。这些评论随后被分类到一个层次化的类别中。下图显示了每个类别下的相对评论数量——点击每个类别可查看更多详情。

虽然没有立即可以得出的结论,但这些结果将帮助我们塑造项目未来的路线图。

点击一个类别以查看更多详情

方法论

该调查于 2019 年 3 月 12 日至 4 月 26 日开放提交,为期 45 天。我们在我们所有的社交渠道——论坛、Slack 频道和 Twitter 账户上进行了宣传。它还在非官方的 Node-RED Facebook 群组以及 Node-RED 日本用户组成员中分享。

总共有 871 份回复。

没有收集关于受访者如何得知调查的信息,所以我们不知道哪种方法更有效。

问题由 Node-RED核心团队编写和审查。目标是全面了解 Node-RED 用户社区。通过论坛,我们看到了大量来自用户社区的活动。但这些活动往往是用户在遇到困难时提问,因此无法让我们很好地了解更广泛的社区情况。

由于这是我们第一次进行此类调查,我们从各种更成熟的技术社区调查中寻求了灵感。这有助于确定我们可以提出的问题类型,当然是针对 Node-RED 量身定制的。