背景
网上的开源项目很多,但是质量高的却很少。每一种协议或功能在不同语言都有实现,而且实现有很多个版本。如何选择成为一个难题。
一个高质量的库意味着
全面详尽的文档
一般来说,文档比较详细的,而且有例子的。文档是优先考虑的因素,如果文档不全,则很难理解作者的意图,到了修改源代码时候,就会比较费劲。
源码紧凑而有条理
查看源码风格是否一致,注释是否详尽而简明,变量命名是否贴切且符合常理?错误处理是否考虑周到,比如Go语言的习惯是,在每一个操作性语句后面都要添加一个错误处理的语句,if err != nil
,比较好的Go语言库是: gorilla
比较全面的测试用例
测试用例一方面保证代码的质量,另外也属于文档,在某个功能没有使用说明文档的时候,如果测试用例覆盖到该功能,它则会是很好的参考文档。
star和fork多
选star和fork多的,一般来说越多越好。
核心贡献者数量和代码活跃度
贡献者数量多,核心贡献者不止一人。最后的活跃时间一般希望在最近一年以内。
License的类型决定了有什么使用限制
不同的License对于使用有不同的限制。choosealicense 网站详细介绍了各个License, 总的来说MIT算是最为简单开放的协议,基本没有后顾之忧。
最后
如果没有特别热门和合适的项目可选,有条件的话,可以尝试自己开发一个。