搜索是一种能力,它能让我们站在巨人的肩上做事情,是我们每一个人都应该掌握的能力。始终坚信的一点是我们平时的需求和遇到的问题别人都已经遇到过并且已经有了解决方案了,因此从github上搜索信息也应该是程序员甚至是互联网从业人员掌握的一种能力,从解决问题的角度来讲有这么两大好处。
- 避免造轮子,比如有一个需求,就可以提取几个关键词来搜索是否已经有现成的解决方案啦
- 参考找灵感,如果有些其他原因非要造一个轮子,也可以参考上面的实现来做
下面就从github项目主页组成、搜索技巧、搜索举例3个方面来简单记录一下
项目主页
搜索github首先要弄清楚我们搜索的是啥,它由哪些部分组成
- 项目名(name)
- 复制数(forks)
- 星数(stars),表示了一个项目的火热程度,判断这个项目是否优秀的标准之一
- 简介(description)
- 更新日期
- readme(readme)
- 主要编程语言(language)
搜索技巧
使用in关键词
● 项目名或readme或描述中含有python的项目 ---> python in:name,description,readme
通过starts,fork
● 星数大于1000并且复制数大于5000 ---> stars:>1000 forks:>5000
● 星数在5000到10000之间 ---> stars:5000..10000
通过创建、更新时间
● 按创建时间 created:>=yyyy-MM-dd
● 按更新时间 pushed:>yyyy-MM-dd
按文件、路径内容
● 有限制:必须登录、项目文件不能太多、太大
● 搜索fork资源时,只能搜索到start数量比父级资源多的fork资源,并加上fork:true
● 搜索结果最多可显示同一文件的两个分段,但文件内可能有多个结果,不能使用通配符
● 按文件内容 ---> python in:file
● 按文件路径 ---> python in:path
按文件名、大小、扩展名搜索
● 按文件名 filename:FILENAME---> filename:Util
● 按文件大小 ---> size:>=1000
● 按扩展名 extension:EXTENSION ---> extension:py
按编程语言
● 按编程语言 language:LANGUAGE ---> language:javascript
搜索举例
● 搜索readme中含有"web development" 主要编程语言为 "Python",星数大于3000的项目
● ---> "web development" in:readme language:python stars:>3000
● 搜索微信相关开源项目
● ---> 微信 in:name,description,readme stars:>10000