怎样选择一个质量比较高的开源库?

背景

网上的开源项目很多,但是质量高的却很少。每一种协议或功能在不同语言都有实现,而且实现有很多个版本。如何选择成为一个难题。

一个高质量的库意味着

全面详尽的文档

一般来说,文档比较详细的,而且有例子的。文档是优先考虑的因素,如果文档不全,则很难理解作者的意图,到了修改源代码时候,就会比较费劲。

源码紧凑而有条理

查看源码风格是否一致,注释是否详尽而简明,变量命名是否贴切且符合常理?错误处理是否考虑周到,比如Go语言的习惯是,在每一个操作性语句后面都要添加一个错误处理的语句,if err != nil,比较好的Go语言库是: gorilla

比较全面的测试用例

测试用例一方面保证代码的质量,另外也属于文档,在某个功能没有使用说明文档的时候,如果测试用例覆盖到该功能,它则会是很好的参考文档。

star和fork多

选star和fork多的,一般来说越多越好。

核心贡献者数量和代码活跃度

贡献者数量多,核心贡献者不止一人。最后的活跃时间一般希望在最近一年以内。

License的类型决定了有什么使用限制

不同的License对于使用有不同的限制。choosealicense 网站详细介绍了各个License, 总的来说MIT算是最为简单开放的协议,基本没有后顾之忧。

最后

如果没有特别热门和合适的项目可选,有条件的话,可以尝试自己开发一个。

Resource