我是靠谱客的博主 可耐乌龟,最近开发中收集的这篇文章主要介绍开源项目的选择指标,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

只讨论面对一个需求上符合预期的开源项目时,如何判断是否可以“拿来主义”。

作者

项目作者为第一参考项,作者分团队和个人。

团队可能是知名的开源组织,例如 Apache 软件基金会、Linux 基金会和 OSI 等;也可能是有强大研发实力背书的公司,例如谷歌、微软和 Facebook;可能是学校,例如耶鲁大学,早期的 CAS 就是校内的组织所维护。还可能是其它形式的开发团体,例如核心成员来自世界各地的 Spring 社区。

这些已经在业界有很强口碑的团队所推出的开源项目一般都是用脚投票就能用了。

而个人开源项目的质量则主要是看作者的实力和开源精神,有实力的大神级作者未必能做好开源,因为开源项目总是需要持续地投入精力去维护的。兼具了实力和开源精神的作者少之又少,例如开源界的巨人 Linux 之父 - Linus(GIT 也是他随手撸的)和 FFmpeg 的作者 Fabrice Bellard(最近又整了个 JS 引擎出来),这些大神级作者的项目,吾等鼠辈都是跪着 star 的。

考虑到研发和维护,团队一般会优于个人,因为人多力量大 ^_^

Stars

每个 star 都是对项目的一次认可,stars 多的项目通常质量更高(不代表 stars 少的项目质量就低,但就像企业喜欢去知名学校挑人才一样,虽然普通学校也会出人才,但在知名学校挑选的效率会更高喔 ~)

star 数也不是笼统地设定一个阈值就可以作为参考标准的,还需要考虑到开源社区的状况。像 Java 这种成熟的技术栈,没个 4 位数的 star 一般很难引起注意。而对于 Go 这种较为新潮的技术,由于社区还在持续发展中,拥有 4 位数 star 以上的开源项目也算是百里挑一了,这种情况下就可以适当把要求放低点,几百个也能将就将就。

License

开源协议灰常重要,一定要选有开源协议的项目。开源协议的类型是非常需要考虑的一个方面,尤其是选用在闭源的商业软件中。

GPL 协议要求使用的项目也以 GPL 协议发布,商业闭源软件切勿选择!!

其它一些比如 BSD、MIT、Apache 之类的协议则比较自由,允许以各种姿势使用,相对比较推荐。

活跃程度

开源项目的活跃程度包含了作者的提交次数、贡献者数量、issue 和 PR 数量、版本迭代等指标,一个活跃的项目通常会有非常快的 BUG 修复速度,功能方面也是推陈出新日益强大,不至于踩到坑了连作者都联系不上,或者联系上了让你行你来,这些都是非常令人头疼的事。

社区趋势

早期 NodeJs 连接 mongodb 的客户端大部分都会选择 mongoose,因为它使用起来非常简单,提供的对象模型工具使得开发者从 SQL 到 NOSQL 的过渡较为平滑,而且 star 数多,社区也相对活跃。但在官方推出 mongodb 的客户端工具之后,mongoose 就直接沦为炮灰了。这种时候就不建议选择 mongoose,开源社区也讲究顺势而为。尽管我们可以找出一百个理由说服自己继续使用 mongoose,但无法说服 mongoose 永远不要气馁,永远不要放弃维护。

开源规范

决定选用开源项目之前,看看基本的开源规范是很有必要的,一个好的开源项目不仅仅是为了实现,也是为了更好地实现。

开源规范包括良好的代码风格、适当的注释、清晰的文档、较高的单测覆盖率等。

如果说开源项目有灵魂,那大概就是 README 了。在 README 上我们至少应该知道项目可以解决什么问题,项目如何使用以及当前的构建状态和测试情况。例如 GO 的 GIN 框架就给我们带来了非常好的 README 模范:

在这里插入图片描述

且不论 README 的其它内容,光从上面的一堆 Badge 我们就可以首先知道当前项目是构建通过的,测试覆盖率达到了 98%,开发者可以放心选用。

除此之外,还提供了 GO 应用的详细分析报告、GODOC 文档,也允许我们在 gitter 上与作者或其它使用者交流等,非常值得信赖。

性能评估

尽管大多数稀碎项目 QPS 可能永远不会超过 1000,但这并不妨碍我们追求单机五位数甚至六位数以上的并发能力。

木桶理论可以很好地套用在应用程序中。所谓短板决定上限,在我们选择的众多开源工具中,如果有一个环节太弱,整体性能就很难上得去。

在 GO 这种原生库就已经很好地支持了 HTTP 服务的开源社区中,反而 WEB 框架百花齐放,大多数项目最喜欢做的就是性能对比,因为这是最容易显功力的地方,也是有追求的开发者最为关注的地方。所以接受众多吐槽的 Beego 框架,实际上只能沦为新手的入门课,我们可以称赞它的出发点,可以称赞它的创意,但就是无法下定决心将就用。


本文首发于 GitChat,未经授权不得转载,转载需与 GitChat 联系。

阅读全文: http://gitbook.cn/gitchat/activity/5d6c732f1e6dd75f4f43061d

您还可以下载 CSDN 旗下精品原创内容社区 GitChat App ,阅读更多 GitChat 专享技术内容哦。

FtooAtPSkEJwnW-9xkCLqSTRpBKX

最后

以上就是可耐乌龟为你收集整理的开源项目的选择指标的全部内容,希望文章能够帮你解决开源项目的选择指标所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(41)

评论列表共有 0 条评论

立即
投稿
返回
顶部