如何更精准的在 Github 上搜索开源库?你需要这些技巧!

正文共: 2468字 8图

预计阅读时间: 7分钟

一、前言

在日常工作中,我们并不推荐去重复造轮子,通常我们会去搜索一些稳定的第三方开源库来使用。而 Github 中,开源的那些代码库,就是一个非常宝贵的资源,很多大型稳定的开源项目,都被托管在 Github 之上,这些项目一旦被开源,经过广大开发者的贡献之后,其实很多已经趋于稳定,靠谱的开源库已经很难发现重大 Bug。但是在 Github 上托管的开源项目非常之多,最简单的搜索方式就是在搜索框中,输入我们要搜索的关键字。这在有明确目标的前提下,将非常的高效,但是有时候我们并不能完整的确定。如何在这一大片资源中,找到我们需要的,就是需要技巧的了。本文就这个话题,展开讨论,看看如何高效的在 Github 上,搜索我们需要的开源项目。

二、搜索技巧

2.1 搜索结果先来看看,当我们直接在 Github 上,搜索项目的时候,出现的效果。

如图所示,这里我搜索的是Glide,对于一些优秀的开源项目,一般比较靠前的搜索结果里,就可以搜索出我们想要的项目。在这个页面,如果想要赛选出搜索结果,可以在右侧选择 Languages 来选择语言,例如我这里搜索的 Glide ,明显就是想要 Java 的开源库,所以选择 Java 就好了。而如果想要在搜索结果中,进行排序,可以点击 Sort 来选择,默认是 Best Match ,表示一个最佳匹配的结果。

Sort中,可以通过 start 、fork、updated 几个指标进行单独排序,一般我们使用 Most starts(按 start 数,降序排序)或者Most forks(按 fork 数,降序排序),就可以了。通常,这些选择之后,就已经可以精准的找到我们需要的开源库了。假如,还是不确定,可以考虑使用高级搜索(Advanced search),来进行搜索,在搜索结果的右上角,有快捷入口可以点击。2.2 Advanced Search在搜索结果页,就有 Advanced Search 的快捷入口,如果你没有找到,你可以直接进入:https://github.com/search/advanced假如普通的搜索方式,满足不了你的需要,那么 Advanced Search 就一定是你想要的。在 Advanced Search 中,你可以最大限度的设定搜索的条件,例如:作者是谁,来自哪个 repositories ,start 和 fork 数的范围等等,非常的全面。

在 Advanced search 的最上面,有一个搜索框,可以在这里填写关键字,然后在下面选择筛选的条件。从上面的例子中,可以看到,当你选择筛选条件之后,搜索框中,同步也会修改搜索的内容,而这些内容是遵循 Github 搜索语法的。举个例子,在 Repositories Options 中,你可以设置一些 start 和 fork 数的范围。

可以看到,对应的输入框,其实已经将提示做的很好了, 标识 0~100 的范围内, 标识最少要大于 1000 ,这些都非常的好理解,你可以根据需求在这里配置。举个例子,假如我需要搜索一个图片加载库,我搜索关键字 "Image loader" ,并且要求 start 数要大于 1000,最终配置完成的结果就是。这样的一个搜索语句,是可以直接在 Github 的搜索框中生效的,如果熟悉这些语法,就不需要依赖 Advanced Search 这个页面了。这里推荐几个常用的语法,其实更多的我自己也记不住,如果忘了,点开 Advanced Search 就可以了,毕竟是个熟能生巧的事情。starts: 限定 start 数,例如 。forks:限定 forks 数,例如,。user:限定作者,例如,。license:限定开源协议,例如,。topic:限定标签,例如,。更多使用技巧,推荐直接查阅官方文档,或者在 Advanced Search 页面中多试试。https://help.github.com/categories/searching-for-information-on-github/2.3 Topic 搜索还有一个 Topic 搜索的使用技巧,我觉得也非常有用,可以单独拿出来说说。对于开源库,都是为了解决具体问题,例如访问网络、加载图片等等,所以会为其加上不同的 topic 来做为一个标签的形式,对开源库进行标记。

对于 Glide 而言,它的 Topic 就是如上图所示的这些。这些 Topic 都是可以点击的,例如我想继续看看同样被 标记过的开源项目,直接点击 就可以了,这样筛选出来的库,可能也能解决加载 图的问题。GitHub 还专门提供了一个页面,展示目前流行的 Topic:https://github.com/topics。

三、小结

本文知识提点了一些 Github 上,可以使用的常用搜索技巧,能更快的帮你找到你需要的开源库。一些高级技巧确实不常用过一段时间就忘记了,不过还好有 Advanced Search 页面,可以帮我们快速的找到我们需要的筛选条件。对于知识,有时候知道如何找到它,比掌握它更加重要。

你还有什么关于 Github 搜索的小技巧,可以在留言区留言,我们一起讨论一下。

本文来自企鹅号 - 承香墨影媒体

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏北京马哥教育

让“懒惰” Linux 运维工程师事半功倍的 10 个关键技巧!

好的Linux运维工程师区分在效率上。如果一位高效的Linux运维工程师能在 10 分钟内完成一件他人需要 2 个小时才能完成的任务,那么他应该受到奖励(得到更...

3866
来自专栏腾讯Bugly的专栏

手Q Android缓存监控与优化实践

死锁问题对产品的影响是巨大的,那么是否会有效的方法能够监控Android应用的死锁呢?

71512
来自专栏子勰随笔

SDK设计心得之接口设计

1.5K9
来自专栏老九学堂

进程与线程的区别?

进程是什么? 程序并不能单独运行,只有将程序装载到内存中,系统为它分配资源才能运行,而这种执行的程序就称之为进程。程序和进程的区别就在于:程序是指令的集合,它是...

36911
来自专栏java一日一条

Nginx引入线程池 性能提升9倍

正如我们所知,NGINX采用了异步、事件驱动的方法来处理连接。这种处理方式无需(像使用传统架构的服务器一样)为每个请求创建额外的专用进程或者线程,而是在一个工作...

721
来自专栏恰同学骚年

NoSQL初探之人人都爱Redis:(1)Redis简介与简单安装

  随着互联网Web2.0网站的兴起,传统的关系数据库在应付Web2.0网站,特别是超大规模和高并发的SNS类型的Web2.0纯动态网站已经显得力不从心,暴露了...

1072
来自专栏IT技术精选文摘

MongoDB和数据流:使用MongoDB作为Kafka消费者

数据流 在当今的数据环境中,没有一个系统可以提供所有必需的观点来提供真正的洞察力。从数据中获取完整含义需要混合来自多个来源的大量信息。 与此同时,我们不耐烦地...

4996
来自专栏WeTest质量开放平台团队的专栏

Android外部存储

外部存储作为开发中经常接触的一个重要系统组成,在Android历代版本中,有过许许多多重要的变更。我也曾疑惑过,为什么一个简简单单外部存储,会存在存在这么多奇奇...

5986
来自专栏上善若水

S006SELinux(SEAndroid)是个什么呀

SEAndroid 是一套安全机制,实现的主要目的是为了是Android系统更安全。 SELinux是被设计为一个灵活的可配置的MAC机制。 SEAndro...

1374
来自专栏后端技术探索

深入 Nginx:我们是如何为性能和规模做设计的

NGINX 在网络应用中表现超群,在于其独特的设计。许多网络或应用服务器大都是基于线程或者进程的简单框架,NGINX突出的地方就在于其成熟的事件驱动框架,它能应...

700

扫码关注云+社区