作为程序猿开发中最大的同性交友网站,github当之无愧,里面有很多优秀的开源框架,各种技术大佬混迹其中,有他们总结的学习教程,造好的轮子(开发的各种工具,技术框架),开源的项目等,我们能够从中借鉴学习,也可以获取灵感,或节省时间,完成任务等等。但是我们要从如此多的内容中找到优秀的和我们需要的,需要我们使用一些搜索技巧,缩小搜索范围,帮助我们更快搜索到相关的内容。
例如我们在github上查找某个项目,评价其优秀与热门最直接的参数就是看这个项目被star(类似微博点赞,在个人主页可以查看自己点赞了哪些内容)了多少次,获得了多少认可,被fork了多少次(当你觉得这个项目不错时,可以fork这个项目源码到自己仓库中,但是在你仓库中存在的这个项目不会同步更新)。虽然一个优秀的项目不一定是star多,有可能暂时还没被其他人给发现,但根据这2个参数筛选却是我们简单有效的依据。
1, 大于等于 语法: 关键字 stars:>= 数量 forks:>=数量 例子: springboot stars:>=5000 //搜索springboot有关star数>=5000的内容 springboot stars:>=5000 forks:>=5000//搜索springboot 的star>=5000,且fork数>=5000的内容 可单独搜索,也可组合搜索,中间用空格隔开,是&(且)的关系。
如图1所示
2,范围查询 语法: 关键字 stars:范围1..范围2 例子: springboot stars:4000..5000 //搜索star数在 4000到500的springboot相关内容,..相当于mysql中between and 的作用。
如图2所示
搜索关键字在github上发布的位置 ,主要以下3个位置
name (发布的仓库名称)
description(指的是文章的摘要部分)
Readme (说明文档)
语法 :关键字 in: 例子 :netty in:name //查找名称中包含netty的内容 netty in:name,description //逗号分隔,是 || (或)的关系,指的是查询名称,或者描述中包含netty的内容
一般是指的学习,书籍,工具类,插件类相关的系列的集合。可以有效节约时间,找到别人收集好的内容。
awesome 指的是了不起的,碉堡了。
github 官方解释: An awesome list is a list of awesome things curated by the community. 大致意思:社区组织维护的一系列非常棒的东西的集合。(差不多吧,哈哈,水平有限,谷歌翻译了解一下)
例如: awesome springboot
如图3所示
例如: location:Beijing language:java
例如: awesome springboot
如图4所示
在github上 按 ?可调出快捷键页面,有些对我们还是非常有用的。
快捷键页面链接如下:
https://help.github.com/en/github/getting-started-with-github/keyboard-shortcuts
如图5所示
查看源码利器 t
在github 学习某个框架时,如果包的结构层级特别多,嫌一层层点进去麻烦,用 t ,该框架所有的类以列表形式平铺展开,方便查看
如图6所示
s 键 (search)
帮助快速聚焦在搜索框里,提高效率
在与其他人协作开发时,沟通时在给别人指出某行,或者某块代码,可以在github链接后面加上
1,#L23 //某行高亮 如: https://github.com/unofficial-openjdk/openjdk/blob/jdk/jdk/test/jdk/sun/misc/GetSunMiscUnsafe.java#L36
如图7所示
2,#L23-35 //某个代码块 如: https://github.com/unofficial-openjdk/openjdk/blob/jdk/jdk/test/jdk/sun/misc/GetSunMiscUnsafe.java#L36-L40
如图8所示