蚊章汇 - 使用情况
type: channel
link: https://linuxcn.bwsl.wang/tag/%E4%BD%BF%E7%94%A8%E6%83%85%E5%86%B5/
items: 衡量你的开源软件使用情况的 8 个方法

衡量你的开源软件使用情况的 8 个方法
type: item
date: 2023-01-05T01:31:37+08:00
description: 想知道如何为你的开源软件项目收集使用指标？考虑一下使用这些替代方案的利弊。我们这些支持开源项目社区的人经常被问到很多有关使用指标的问题。这些指标通常是为了通过用户量和知名度来衡量软件的重要性。我们一般都想知道有多少人使用该软件，有多少次安装，以及有多少人生活接触过它。但简而言之，我们尚无法直接回答上述问题。如果你想要寻找一个明确的解决方案，那很抱歉要让你失望了。有关使用指标的问题，没有人有完美的答案，至少没有准确的答案。好消息是，有一些近似的和替代指标至少能够部分地满足你对软件使用情况了解的渴求。本文探讨了这些替代方案以及它们的优点和缺点。下载量当你浏览提供软件的网站时，你通常可以看到软件的下载次数。映入我脑海的一个例子是 Firefox ，它曾经有一个下载计数器。Firefox 的下载量是一个印象深刻的数字，给人的印象是 Firefox 是一个流行的浏览器，在一段时间内确实如此。然而，个人行为会直接影响这一数字的准确性。举例而言，当一个人定期重置他们的设备时，每一次重建都会引发一次独立的下载。考虑到这一现实，需要设计一种方法从下载量中去除几十次（或许是几百次）的下载次数，因为那是一个人。下载量不仅会高估使用量，还会低估使用量。例如，一个系统管理员可能会下载一个新版本的 Firefox 一次并将其拷贝到 U 盘上，然后安装到数百台设备上。下载量指标是易于收集的，你可以在服务器上记录每一个下载请求。问题在于你不知道在这些软件下载以后会发生什么。下载它的人是否如预期的那样使用软件，还是遇到了问题而放弃了它。对于开源项目而言，你可以考虑各种下载量指标，比如来自以下途径的下载指标：项目官网包管理器，比如 npm、PyPi 和 Maven代码仓库，如 GitHub、GitLab、Gitee 等你可能还对源代码的下载量感兴趣，因为下游项目更可能使用源代码形式（参见 《如何衡量你的开源项目的影响》一文）。相应的下载指标包括：从代码仓库克隆的数量，比如 GitHub、GitLab 和 Gitee从官网下载的归档文件（tar、zip）的数量通过像 npm、PyPi 和 Maven 这样的包管理器下载的源代码数量源代码的下载指标比二进制代码的下载指标更不可靠（虽然尚无相关研究表明如此）。试想一下，一名开发人员想要你的最新版本的源代码，并将他们的构建管道配置为每次构建都克隆你的仓库。再想象一下，一个自动构建过程失败了，它试图重新构建而不断地克隆你的版本库。你还可以考虑这样一个下载量低于预期的场景——源代码仓库在某些地方缓存了，下载来源是由这些缓存所提供的。相关阅读：跟踪你的开源社区的 5 个指标总而言之，下载量指标是用于提供当前使用情况和探测趋势的很好的指征。我们无法明确地定义一次下载是如何转化为使用的。不过我们可以认为增加的下载量是更多潜在用户的标志。举例而言，如果你为你的软件做了广告并在活动期间得到了更高的下载量，可以合理地假定广告推动了更多人下载该软件。下载行为的来源与元数据还可以提供额外的与使用行为相关的内容。你的软件的哪些版本仍在使用中？什么操作系统或者特定语言的版本更加流行？这有助于社区决定将哪个平台的软件作为支持与测试的优先选项。议题作为一个开源项目，你可能有一个议题追踪器。当某个人提出一个议题时一般有两个目标，报告一个漏洞或者请求增加一项功能。提议者很可能已经使用过你的软件了。作为一名用户，他可能发现了一个漏洞或者发现了对一个新功能的需求。很明显，大多数用户不会执行额外的步骤来提交议题。提议者是我们的忠实用户，我们对他们表示感谢。此外，通过提出议题，他们已经成为了非代码贡献者，他们也有希望成为代码贡献者。经验法则是大约每 10000 名用户中，可能有 100 名提议者，以及 1 名代码贡献者。当然取决于用户类型，上述比例可能有出入。回到指标问题，你可以将提议者数量作为评估使用量的下界。相关的指标包括：提议者数量活跃提议者的数量（在过去 6 个月内提出议题的提议者）同时有代码贡献的提议者的数量尚未解决的议题的数量对议题发布的评论数量邮件列表、论坛和问答网站很多开源项目都拥有用户邮件列表、论坛，并且出现在类似 Stack Overflow 的问答网站上。与提问者一样，在这些地方发帖的人可被视作用户的冰山一角。与邮件列表、论坛和问答网站上的社区活跃程度相关的指标也可用于反映用户数量的上升或下降。相关指标可以集中于以下地方的活动，包括：用户邮件列表的订阅量论坛用户的数量问题的数量答案的数量发布信息的数量上报功能为了获得精确的用户数量，一个方案是让软件在使用时上报信息。这是令人毛骨悚然的。想象一下，系统管理员的防火墙报告了一个非预期的到你的服务器的网络连接，你不仅无法再收到软件报告（被防火墙拦截了），恐怕连你的软件也可能在未来被禁止使用。负责…