博客主页:https://blog.csdn.net/mukes
欢迎点赞收藏⭐留言如有错误敬请指正!
本文由 mukes 原创,首发于 csdn
很多小伙伴,尤其是在校学生,或者说想转软件开发,搞计算机的朋友,总会问一个问题:找工作,没项目经验怎么办?
关于这个问题了,就是上网找开源项目,自学吸收,这是一个获取项目经验比较靠谱的途径
于是就有很多人问,网上的开源项目这么多,怎么找到比较好的,而且持续更新的优质开源项目呢?
我们先来学习第一种搜索方法,通过 in:name 方式搜索项目。
首先,打开 Github ,鼠标锁定 搜索栏 。
比如我想学习 spring boot
,那我可以这样搜索:
搜索需求:匹配其名称中含有 "spring boot" 的仓库(项目)
in:name spring boot # 匹配其名称中含有 "spring boot" 的仓库(项目)
一共搜索出来 13.5万个结果,这样的搜索出来的仓库(项目)太广泛了,因此,我们可以限定一下搜索条件。
比如我想查询比较受欢迎的项目 ,那我应该怎么添加搜索条件呢?我们都知道一个项目的的受欢迎程度是与 stars 数目挂钩的。
因此,我们可以这样写:
搜索需求:匹配其名称中含有 "spring boot" 且 stars 数大于 3000 的仓库(项目)
in:name spring boot stars:>3000 # 匹配其名称中含有 "spring boot"
# 且 stars 数大于 3000 的仓库(项目)
加上限制条件 3000 stars,项目数从 13.5 万直接锐减到 16 个。
这个 3000 大家视情况更改,现在大家发现没有,搜索的适合的项目越来越少了,也越来越精确了。
我们也可以进一步限定搜索条件:
搜索需求:匹配其名称中含有 "spring boot" 且 stars 数大于 3000,forks 数大于 2000 的仓库(项目)
in:name spring boot stars:>3000 forks:>2000 # 匹配其名称中含有 "spring boot"
# stars 数大于 3000
# forks 数大于 2000 的仓库(项目)
# 解释一下forks,即代码仓库(项目)的复刻数,比如说这个项目不错
# 某人就直接克隆到自己的仓库里面,forks 数越大说明克隆的人越多
现在直接剩下 8 个项目了。有人说,虽然只剩下几个项目了,但是都是高星项目,太大了,我是一个小白,看不懂,学不来怎么办?
那么我们就可以试试换一种方式搜索了。
我们可以搜索 readme.md(自述文件)
1里面的关键字,因此我们可以这样搜索:
搜索需求:匹配其自述文件中提及 "spring boot" 的仓库(项目)
in:readme spring boot # 匹配其自述文件中提及 "spring boot" 的仓库(项目)
这时候你会发现搜索结果 25 万个左右,那我们可以再限定一下搜索词再搜索:
搜索需求:匹配其自述文件中提及 "spring boot" 且 stars 数大于 2000 的仓库(项目)
in:readme spring boot stars:>2000 # 匹配其自述文件中提及 "spring boot"
# 且 stars 数大于 2000 的仓库(项目)
这时候你发现只有 180 个左右的 仓库(项目)
了。
这时候你去筛选一下就比较简单了。
当下微服务相当地火是吧?那我们搜索一下微服务,那我们怎么搜呢?我们可以在description(描述)
2里面搜:
搜索需求:匹配其名称或描述中含有 "微服务" 的仓库(项目)
in:description 微服务 # 匹配其名称或描述中含有 "微服务" 的仓库(项目)
我们看到有 1 万多个项目,有各种各样的编程语言,现在我们指定一种编程语言,比如:Java
搜索需求:匹配其名称或描述中含有 "微服务" 且指定开发语言为 Java 的仓库(项目)
in:description 微服务 language:java # 匹配其名称或描述中含有 "微服务"
# 且指定开发语言为 Java 的仓库(项目)
这时候我们发现只有 5000 多个项目了。
因为有一些项目更新地十分频繁,而有一些呢很久都没更新了,那我们可以再加限定搜索词 pushed
,pushed 是指最后的更新时间
,因此我们可以这么搜:
搜索需求:匹配其名称或描述中含有 "微服务" ,指定开发语言为 Java ,在 2020-09-03 之后提交更新的的仓库(项目)
'''匹配其名称或描述中含有 "微服务" ,指定开发语言为 Java ,
在 2020-09-03 之后提交更新的的仓库(项目)'''
in:description 微服务 language:java pushed:>2020-09-03
这时候呢我们发现只有 510 个项目了,这些项目就属于更新比较活跃比较频繁的项目。
如果我想查看英文的项目,比如关于爬虫
的项目,爬虫
的英文是 web crawler
或者 spider
.
我们可以直接在readme(自述)
或者description(描述)
里面搜 spider
,下面我们选择在description
里面搜索:
搜索需求:一个英文的 Python 爬虫仓库(项目),要求 3000 stars 以上,且最近一个月有过更新
'''一个英文的 Python 爬虫仓库(项目),要求 3000 stars 以上,且最近一个月有过更新'''
in:description spider language:python stars:>3000 pushed:>2020-10-10
可以看到现在只有两个仓库(项目)了,第 1 个项目为英文项目,第 2 个项目为中文项目。所以说朋友们, readme
或者description
里面包含英文的项目不一定是国外项目,但是readme
或者 description
里面包含中文的项目一般都是国人的项目。
通过上面的演示,大家应该都知道通过 readme和 description
搜索的强大了吧?毕竟仓库(项目)名
是作者的个人主观上起名的,而有一些项目用到的框架、数据库等等在项目名里面不一定能体现出来,但是一个好的项目用到的技术框架一定会写在 readme 或者 description 里面。
优质的项目用了什么框架什么技术都会写在 readme
或者 description
里面对吧?由于上文我们已经介绍过 description
了。
那我们可以通过 readme
这么搜索:
搜索需求:使用了 spring security 框架的 Java 项目,stars 大于 2000 ,在 2020-08-07 之后提交过更新
'''使用了 spring security 框架的 Java 项目,stars 大于 2000
在 2020-08-07 之后提交过更新'''
in:readme spring security language:java stars:>2000 pushed:>2020-08-07
这样搜索出来就只有 62 个项目了
当然 ,以上教程只匹配了一个关键词,但是实际上是可以匹配多个关键词的,比如:
in:description mysql redis spring boot # 匹配其名称或描述中含有 "mysql"
# "redis" "spring boot" 的仓库
如果你的项目有框架或者技术要求,建议如上方式搜索。
上面是讲怎么搜索一个开源项目。
那下面我们来讲怎么看一个开源项目
的要点:
看它的技术框架(一般写在 description 里面),看看是否是符合自己或者当前主流的
看它的 readme 自述文档,一个好的高星项目自述文档一定写的非常齐全
看它的更新时间,如果已经好几年没有更新了,建议换一个,毕竟技术更迭太快了
一般符合以上三个条件的,都写的比较全的,代码比较完善的,组织结构都比较好的话,可以研究 。
如果各位看官只是想单纯的想和看 微博热搜
和 微博话题
那样看 GitHub 的热门排行,那也可以。
GitHub 有两个热门栏目,分别是 GitHub Trend 和 GitHub Topic,类似于 微博热搜排行
和 微博话题
。
本文总共介绍从 3 个方面搜索项目的技巧,分别是:
1.通过 in:name 方式,即匹配仓库(项目)名中是否含某关键词
2.通过 in:readme 方式,即匹配自述文件中是否含某关键词
3.通过 in:description 方式,即匹配仓库(项目)名或描述中是否含某关键词
更多有关 GitHub 搜索技巧请点击:https://docs.github.com/cn/free-pro-team@latest/github/searching-for-information-on-github/searching-for-repositories
ps:如果我的博文对你有帮助,欢迎点赞收藏 ~(゜ - ゜) つロ 干杯~
如有疑问,欢迎留言讨论~
---------------------------------------------我是一条「 以下图片为注脚 ಠ‿ಠ ღ」分割线
---------------------------------------------