连GitHub开源项目Star数都有人刷??
往期笔记整理
代码评判标准
在上个世纪 8、90 年代,人们常常用代码行数 LOC 来衡量一个软件项目的发展情况。
Docker 的联合创始人 Solomon Hykes 曾表示,“GitHub 的 Star 就是个骗局,这种狗屁的衡量标准是如此的无孔不入,GitHub 对开源社区的扼制是如此的彻底,以至于维护者不得不扭曲自己的工作流程来适应‘GitHub 模式’,否则就有可能被行业分析师公开羞辱,真是耻辱。”
Star 难以体现的东西
这就是问题所在。Steven 指出,人们总是喜欢简单的指标,他们想要用快速、一目了然的方法找到能够解决他们问题的开源代码。但事实上,根本就没有这样简单的方法。
这是一项颇为复杂的工作,但却是确定哪些代码功能真正流行和经常被人使用的唯一方法。
如何准确评估一个开源项目
既然仅靠 Star 数很难完全判断一个项目的好坏,那我们如何全面准确地评估一个开源项目呢?Steven 列出了几个能够判断一个开源项目质量的角度,包括:
看该项目开发者的数量和质量。显然,一个项目拥有可观的开发者数量,且这些开发者都是当前领域的专家,那这个项目无疑是成功的。反之,该项目则很有可能在短期内失去维护,甚至停止更新。
该项目是否容易吸纳新的贡献者。包括项目源码是否容易获得,新的贡献者能否轻松参与项目贡献,项目维护者是否对外来贡献者持开放态度等等。这将决定该项目是否会在短期内改变开源协议甚至变成闭源软件。
项目在世界范围内的使用情况。根据权威的市场调查报告,判断项目在全球范围的使用人数。
例如 Netcraft 的 Web 服务器市场报告显示,自 2019 年 6 月以来,Nginx 已经取代更为知名的 Apache 成为部署最广泛的 Web 服务器。项目相关技术在业内的流行趋势。例如 4 年前人人都知道 Docker 容器是未来的发展趋势,却不知道如何对容器资源进行安排调度。
而如今人人都知道 Kubernetes 是容器编排领域的不二之选。你必须要知道你的领域里什么技术是热门,什么不是热门。
开源项目评估工具
Augur 是用于收集和评估有关自由与开源社区的结构化数据的工具,其核心宗旨是希望公开收集人们可以信任的数据,然后提供有用且定义明确的指标,以帮助人们通过这些数据指标全面了解一个开源项目的发展情况。
项目组为此收集了大量的数据。目前主要的数据来源有 4 个:
Raw Git 提交日志(提交,贡献者)
GitHub 的 API(问题,请求,贡献者,存储库元数据)
Linux 基金会的 Core Infrastructure Initiative API(存储库元数据)
简洁的代码计数器,快速的 Sloc,Cloc 和 Code 工具,还可以执行 COCOMO 计算
这些数据由 Augur 项目组中的数据专员进行收集,每个工作人员负责查询上述数据源的某些子集。
GrimoireLab
GrimoireLab 同样是用于软件开发分析的 CHAOSS 工具集。
它包括一组协调的工具,能够从用于支持软件开发(存储库)的系统中检索数据,将其存储在数据库中,通过计算相关指标来显示该项目的情况,同时支持运行分析和可视化处理。
创立于 2017 年的 CHAOSS 项目一直致力于创建分析和指标以帮助人们更加全面地了解一个开源项目的健康程度。
看看国内,AllSpark 是由华东师范大学 X-Lab 实验室研发的开源大数据查询管理平台。
该项目采集了开发者在 Github、Gitee 等平台协作开发过程中产生的大量行为数据,如 Issue 讨论、Pull Request 及代码评议讨论、Commit 记录等。
以 Github 平台为例,GH Archive 和 GH Torrent 两个数据归档项目均持续归档存储 Github 平台上的行为数据,两个项目分别来自企业界和学术界,代表了各方对开源数据的重视。
GH Archive 监视 GitHub 公共事件时间轴,AllSpark 能在这些具有时间属性的行为数据当中,基于数据挖掘和分析的方法,得出开发者协作关系、社区演化过程以及社区状态等属性,并从中挖掘出繁荣开源社区治理的内在经验。
AllSpark 项目的数据管理基础设施部分已经运行在 X86 架构的服务器上,目前可以持续收集 Github 的全域行为数据。
该项目基于此项服务对 2019 年的开源数据进行了分析,发布了 2019 开源数字年报。 以下为 AllSpark 根据从 GitHub 采集到的各项数据排列出的 2019 年度十大开源项目:
此外,国内的开源代码托管平台 Gitee 也在 Star 功能以外推出了“码云指数”功能,从代码活跃度、社区活跃度、团队健康度、流行趋势、影响力等多个维度评估一个开源项目的健康度。
“总而言之,只有保持对重要的开源项目的关注,并观察它们是如何被人们看到和使用的,你才能真正知道哪些项目会对你有好处。”Steven 表示,“虽然这是一个比光看 Star 数要复杂得多的过程,但却是非常值得的。”
参考链接:
https://www.zdnet.com/article/how-to-judge-open-source-projects/ https://chaoss.community/