第 1 小节:如何找到适合自己学习和使用的开源项目
# 第 1 小节:如何找到适合自己学习和使用的开源项目
# 关键指标
# 1. 技术栈
首先要明白自己的技术栈是什么,使用什么语言或框架做开发。通过首页的关键字搜索,选择相对应的技术栈。其次要明白自己的水平,选择相对应水平的开源项目,能够更好的学习。对于项目的源代码,学习初期,可以不做深入的学习,只需要了解项目的大概架构即可。
# 2. Star 数量
首页关键字搜索之后,一般来说会优先按照 Star 数量来排序,Star 数量高不代表一定是最好的,但一定程度上说明了这个项目的受欢迎程度。在开源的项目上得一个 Star 远比在微信上获得一次「点赞」难的多。
# 3. 项目作者
Star 数量相差不多的情况下,可以看项目作者的影响力。有影响力的人不一定是最好的选择,但起码不会不靠谱。同时也可以看一下作者之前的作品,优秀且靠谱的作者,项目大多都是受欢迎程度高的,可信赖的。当然,一般来说公司项目是优先于个人项目的,毕竟公司的开发实力是要强于个人的,同时公司的项目安全性,可靠性也是优于个人开发者的。
# 4. README.md
README.md 是关于项目的文档说明,在这个文件中会详细说明 项目名及简介,项目背景,项目 LOGO 和使用截图,项目的功能点,体验地址,如何下载这个项目,安装项目所需依赖 , 如何安装 , 如何部署 ,以及 Debug 方法 。通常来说,README.md 的详细程度和美观程度与该项目的靠谱程度成正比。
# 5. 项目的最后更新时间
对于开源项目来说最怕的是作者不维护,这就意味着之后再也不会有改进了,并且出了问题也很难被迅速解决。项目的更新时间频繁,更新日期近,就意味着项目的作者还在维护。
# 6. Issues 和 Fork
Issues 数量多,作者回复速度快,Forks 数量多都是体现该项目被关注程度以及流行程度。
# 7. 开源协议
使用开源项目也要遵守一定的原则的,即所谓的开源协议,常见的开源许可协议有:
GPL、LGPL、BSD、Apache Licence Vesion 2.0、MIT,进入 认识开源许可证 章节查看更多信息。
目前为止 MIT 应该算是用的最多的开源协议了,它的开放度最广,只要求基于此项目的项目也附带一份 MIT 协议即可(协议中有原作者的名字),也就是要求保留署名。通常来说,如果你的开源项目里面的源码没有任何所谓,只想专心写代码,附上一份 MIT 协议是最省心省力的选择。
# 8. 总结
综合评估的指标下,选择一个相对来说成熟并且适合你自己的就好了。
# 如何在 Gitee 上找到合适的开源项目
# GVP(Gitee 最有价值开源项目)
GVP 是 Gitee 官方综合评定出的优秀开源项目的展示平台,GVP 项目各方面都是非常优秀的,很适合开发者们去学习和使用。
# 开源软件页面
在 Gitee 的 开源软件 (opens new window) 页面中,Gitee 会每天更新官方推荐项目。在官方推荐列表中的项目,已经经过了 Gitee 官方的初步筛选,项目质量已经有了较好的保证。
在页面的左侧 Gitee 为不同领域的开源软件提供了分类,方便不同方向的开发者更快捷的找到自己领域的开源项目,而右侧则可以看到本周及本日的热门项目,其功能和 GitHub 趋势榜类似。
# Gitee 指数
Gitee 为每个开源项目都设置了「Gitee 指数」作为判断开源项目优秀程度的辅助参考。综合五个不同维度的得分,进而产生一个最终的 Gitee 指数,Gitee 指数越高,说明该项目越值得学习和使用。
# 如何在 GitHub 上找到合适的开源项目
# 在 GitHub 上搜索信息
当我们知道自己要找的技术栈、编程语言或框架等关键要素之后,我们就可以通过搜索引擎或在代码托管平台上进行搜索。以 GitHub 为例,除了直接搜索关键字,GitHub 还提供了许多条件搜索功能,善用这些功能,可以更加快速有效地找到我们想要的、优质的开源项目。比如:
匹配含有 "cats" 字样、星标超过 1000 个的仓库。
cats stars:>1000
匹配含有 "vue" 字样、有 5 个或更多主题的仓库。
vue topics:>=5
匹配含有 "node" 字样,有 10,000 或更多关注者的仓库。
node followers:>=10000
匹配已归类为 "algorithm" 主题的仓库
topic:algorithm
匹配遵循 Apache License 2.0 授权的仓库
license:apache-2.0
匹配项目自述文件中提及 "arduino" 的仓库。
arduino in:readme
搜索地址位于中国,且拥有超过 5000 名关注者的开发者。
location:china followers:>5000
更多搜索语法相关内容,请查阅 GitHub Docs 文档 在 GitHub 上搜索信息 (opens new window)。
# 关注 GitHub 趋势榜
在 github.com/trending (opens new window) 页面可以了解每天、每周、每月 GitHub 社区里最激动人心的仓库和作者,经常关注 GitHub 趋势榜,更容易找到适合自己学习和使用的优质项目。
# 使用 GitHub 智能推荐
如果你已经在 GitHub 有所积累,那么可以在 github.com/explore (opens new window) 页面找到 GitHub 根据你的兴趣为你推荐的一些项目。相对来说,技术栈的相关性更强一些。
# GitHub 中文社区
对于新手来说,还有一个不错的选择 —— 通过 GitHub 中文社区 (opens new window) 进行搜索。该站点整合了 GitHub 热门趋势、精选项目、排行榜、分类搜索等功能,同样可以帮助我们更快地找到想要的优质项目。
# 本部分内容贡献者
雪山凌狐 (opens new window)、木兰君 (opens new window)、阿基米东 (opens new window)、taotieren (opens new window)
发现内容中的错误?还是想要补充更多符合主题的内容?《开源指北》欢迎你进行贡献,点击贡献指南了解贡献的具体步骤。