如今开发一个系统,已经少有人从零开始编写每一行代码。因为过去 10 年开源软件的发展,让你只有想不到,没有找不到。最后你的系统一定会构架在一堆开源软件的基础之上。因此基础的选择至关重要,我们可不希望我们的系统是构建在沙滩上的摩天大楼。

那么问题来了,那么那么多的开源软件,同一个类别经常有几十上百上千那么多,哪一个才是最好的呢?道听途说?还是经验之谈?就算是经验之谈那也是你经历过无数次踩坑之后得到的经验。如何尽量减少踩坑呢?

所以今天我们想谈谈开源软件的选择。

(图片出自新浪博客

当然最基本的是需求的满足。一个不满足你需求的开源软件,就算它再好再强大,你也不在乎。好在需求是否满足是很容易去验证的,开源软件我们只需要用起来,或者通过官方的 Demo 去进行测试,就可以知道能否满足自身需要。

假设当我们筛选出了 10 个满足自身需求的同类开源软件,该选哪一个呢?很多人会选 UI、接口等我们能看到的东西显得更顺眼,更符合个人品味的产品。但这未免过于主观和感性,不一定会是最合适的选择。

理性的选择开源软件,需要认真的考量如下几个角度:

一. 影响力

到底有没有人在关注这个项目,还只是作者自娱自乐的产品?

二. 代码活跃度

你肯定不会想要一个多年都没人更新的产品,出了问题也没人管的软件,而全球这样的开源项目不在少数。

三. 社区活跃度

有多少人真正在使用这个产品,而不仅仅是停留在关注?有使用才有反馈,有反馈就会形成社区活跃度

四. 团队是否稳健

这一点非常非常重要,一个项目的长期健康发展,离不开一个稳健的团队。当一个项目有非常多的贡献者的时候,我们会偏向认为它比那些拥有很少贡献者的项目更加可靠,这个可靠主要是体现在软件未来发展上,不会因为个别人的缺位而影响软件自身的发展。现实中也有很多类似情况,当一个作者无暇顾及或者有什么突发变化的时候,经常导致一个软件停更。

———-

角度很多,可难道要靠感觉去评估这几个维度吗?怎么样的活跃度才叫活跃呢? 怎样的稳健度才是稳健呢?

为此码云准备了近一年的功能 —— 码云指数 正式公测了。码云指数从 5 个角度对开源软件进行分析,以直观数值的形式来展示一个开源软件全方位的指标度量,可以为你在进行开源软件筛选时提供有价值的参考。我们也希望更多的开源项目托管到码云平台,一较高下。

来看看一个 Java 开发的网络编程框架的码云指数:

此外我们也希望软件的作者能引导用户使用 issue 来反馈问题,使用 PR 来进行代码贡献。让更多的问题沉淀下来,而不是通过 Q 群的方式交流。

码云指数目前只针对码云上的星标和 GVP 项目开放,可以到 https://gitee.com/explore 体验。

往期精彩:

码云如何保护你的数据——内部安全治理篇

企业代码安全知多少?这些是你应该了解的…

自建 GitLab 似乎很简单?这些坑也许你不知道

码云超轻量级 Gitee IDE 更新,新增暗色主题