第 1 小节:如何找到适合自己学习和使用的开源项目

大约 6 分钟

# 第 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 还提供了许多条件搜索功能,善用这些功能,可以更加快速有效地找到我们想要的、优质的开源项目。比如:

  1. 匹配含有 "cats" 字样、星标超过 1000 个的仓库。

    cats stars:>1000
    
  2. 匹配含有 "vue" 字样、有 5 个或更多主题的仓库。

    vue topics:>=5
    
  3. 匹配含有 "node" 字样,有 10,000 或更多关注者的仓库。

    node followers:>=10000
    
  4. 匹配已归类为 "algorithm" 主题的仓库

    topic:algorithm
    
  5. 匹配遵循 Apache License 2.0 授权的仓库

    license:apache-2.0
    
  6. 匹配项目自述文件中提及 "arduino" 的仓库。

    arduino in:readme
    
  7. 搜索地址位于中国,且拥有超过 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)

发现内容中的错误?还是想要补充更多符合主题的内容?《开源指北》欢迎你进行贡献,点击贡献指南 (opens new window)了解贡献的具体步骤。

上次编辑于: 2021年4月12日 17:18