10个技巧,3分钟教会你高效寻找开源项目

news/2024/7/10 22:24:13 标签: 开源

作为程序员,不论是开发还是学习,肯定会用到开源项目,那么怎么快速在开源网站找到这些项目呢?

  • 常用的开源网站有:github 和 gitee

  • github是全球最大的开源社区,今天就以github为例,演示一下

  • github界面

  • 一般来说,优秀的项目,维护会比较频繁,提交数也就会多一点。当然,一个好的项目,它的Star数和Fork数也会比较多。

普通人搜索的方式

1、打开github

2、输入关键词,搜出来一堆的项目,随便浏览一下,简单看一下README文档。嗯,感觉还不错的样子!

3、然后就是克隆仓库,看一下源码,发现看不懂,内心OS:这是给人看的吗?删了删了!

心累

用这种方法想要找到适合自己的开源项目,跟大海捞针没什么区别。只会一次次的浪费时间,也会消耗自己的耐心和精力,到最后干脆摆烂躺平了。

不过在看这篇文章的你,肯定不想这样啦!那么下面的10个github高级搜索技巧,赶紧学起来吧!

10个高级搜索技巧

⑴、通过in关键词搜索

in关键词可以用来限制搜索范围,精准搜索仓库名称name,说明description 以及README 文件中的内容。description 就是github界面图中, About 中的信息。

下面以搜索spring boot相关的项目为例:

  • 如果直接在搜索栏输入spring boot并回车,会搜到46w个结果

  • 做一个限制,这次搜索项目名里含有 spring boot 的

    in:name spring boot

​ 看到没有,数量马上又46w降到29.5w,但是项目数量还是太多了。没关系,我们可以再加其他的搜索限制,接着往下看!

⑵、通过 stars、forks 数量搜索

一个优秀的项目 star 数量和 fork 数量肯定不会少,那么我可以使用 大于某个数,或者在某个范围之间的方式来过滤项目:

  1. 按照星标数量搜索:语法: 关键字 stars:>=数量 或 关键字 stars:数量1..数量2

  2. 按照分支数量搜索:语法: 关键字 forks:>=数量 或 关键字 forks:数量1..数量2

  • 我们进一步限制搜索范围,要求star数量大于2000,数量马上变成只有31个

    in:name spring boot starts:>2000

stars大于2000

  • 再要求fork数量大于1000,满足要求的项目数量更少了,只有19个

    in:name spring boot starts:>2000 forks:>1000

⑶、按项目创建时间、更新时间搜索

如果优秀项目比较多,相信大家都会喜欢最新的项目,那么就可以把老旧的项目筛选出去。

要是本来就没几个项目供你选,就没必要做这一步了。

  1. 按照项目创建时间搜索:语法: 关键字 created:>=日期

  2. 按照项目更新时间搜索:语法: 关键字 pushed:>=日期

  • 演示:

pushed

⑷、按照地区、编程语言搜索

  • 一般我们都是想找到自己会的编程语言写的项目,否则还得专门去学一遍语言才能看懂,那岂不是兜了一大圈。

  • 另外,要是项目有中文的文档说明,就更好了!(虽然很多优秀的项目都是用英文写的,程序员不能排斥学习英语呀!)

  1. 按照地区搜索:语法: location:地区 关键字

  2. 按照编程语言搜索:语法: language:编程语言 关键字

  • 例如使用 python 编程语言,且star数量大于1000的国产项目,搜索条件就是:location:china language:python stars:>1000

⑸、按文件名、仓库大小、扩展名搜索

  • 凡事都是从易到难,一开始我们更倾向于找一些小型的项目来学习,那么可以用size来筛选一些简单点的项目。

  1. 按照文件名搜索:语法: 关键字 filename:文件名

  2. 按照仓库大小搜索:语法: 关键字 size:>=大小

  3. 按照扩展名搜索:语法: 关键字 extension:扩展名

  • 举个例子:data analysis size:<5000 extension:py

⑹、按文件、路径内容搜索

  1. 按照文件内容搜索:

    语法: 关键字 in:file 搜索内容

  2. 按照路径内容搜索:

    语法: 关键字 path:路径/to/search

例子: 假设你想要查找包含 "authentication" 内容的文件,并且这些文件位于名为 src/ 的路径下,你可以使用如下搜索条件

  • authentication in:file path:src/

文件名,路径搜索

⑺、根据某个人或组织进行搜索

  • 这个可以用来精准搜索你关注的大神是不是提交了新的项目

  1. 搜索特定个人的项目:语法: user:用户名 关键字

  2. 搜索特定组织的项目:语法: org:组织名 关键字

torvalds

⑻、根据仓库的LICENSE搜索

在使用任何开源项目之前,最好详细阅读并理解项目所采用的具体授权协议,因为有的开源项目作者是明确禁止商用的,如果你使用在商业上,后面会很麻烦的!

按照许可证搜索:

  • 语法: license:许可证类型 关键字

⑼、awesome加强搜索

  • awesome 往往整合了大量的同一领域的资料,收集学习、工具、书籍类相关的项目,方便大家更好的学习。

  • 比如搜索优秀的java相关的项目,包括框架、教程等

awesome java

⑽、热门搜索(GitHub Trend 和 GitHub Topic)

  • GitHub Trend 允许你查看当前在 GitHub 上受欢迎的项目,根据不同的编程语言和时间范围进行筛选

  • GitHub Topic 是一种对项目进行标签分类的方式。GitHub 上的项目可以被分配到不同的主题标签,使得你可以通过主题来浏览和发现项目。

以上就是关于高效寻找开源项目的全部内容了!

文章转载自:知微之见

原文链接:https://www.cnblogs.com/Wayne123/p/18046322

体验地址:引迈 - JNPF快速开发平台_低代码开发平台_零代码开发平台_流程设计器_表单引擎_工作流引擎_软件架构


http://www.niftyadmin.cn/n/5402518.html

相关文章

C#入门及进阶|数组和集合(十四):使用泛型

使用泛型可以定义泛型类、泛型接口、泛型方法等。在System.Collections.Generic命名空间中包含几个泛型集合类&#xff0c;List<T>和Dictionary<K,V>是其中非常重要的两种。本节主要学习这些系统提供的泛型集合的用法。 泛型最重要的应用就是集合操作&#xff0c;使…

Vue <script setup>

目录 基本语法 顶层的绑定会被暴露给模板 响应式 使用组件 动态组件 递归组件 命名空间组件 使用自定义指令 defineProps() 和 defineEmits() 针对类型的 props/emit 声明 使用类型声明时的默认 props 值 顶层 await 限制 <script setup> 是在单文件组件 (S…

selenium进阶设置

1、无头浏览设置和规避爬虫检测 问题一&#xff1a;有界面时可以展示的元素&#xff0c;无头模式报错element not interactable 解决方法&#xff1a;通过错误截图发现&#xff0c;页面上有该元素&#xff0c;但是页面不够大&#xff0c;没有显示想定位的元素。 from seleni…

k8s中容器的调度与创建:CRI,cgroup

container调度与创建 选自&#xff1a;K8s、CRI与container - packy的文章 - 知乎 https://zhuanlan.zhihu.com/p/102897620 Cgroup创建&#xff1a; cgexec -g cpu,memory:$UUID \ > unshare -uinpUrf --mount-proc \ > sh -c "/bin/hostname $UUID &…

IIS发布.net网站(配置Nginx以及HTTP和HTTPS)

目录 背景测试过程现象原因分析解决办法 具体实施更改项目发布为http协议访问通过第三方转发使用IIS发布一般启动IIS服务的步骤开启.net相关服务配置网站 总结 背景 新闻发布系统运行之后&#xff0c;局域网内的机器是否可以访问呢&#xff1f;     首先新闻发布系统是个.N…

NCDA设计大赛获奖作品剖析:UI设计如何脱颖而出?

第十二届大赛简介 - 未来设计师全国高校数字艺术设计大赛&#xff08;NCDA&#xff09;开始啦&#xff01;视觉传达设计命题之一: ui 设计&#xff0c;你想知道的都在这里。为了让大家更好的参加这次比赛&#xff0c;本文特别为大家整理了以往NCDA大赛 UI 设计的优秀获奖作品&a…

redis实战笔记汇总

文章目录 1 NoSQL入门概述1.1 能干嘛&#xff1f;1.2 传统RDBMS VS NOSQL1.3 NoSQL数据库的四大分类1.4 分布式数据库CAP原理 BASE原则1.5 分布式集群简介1.6 淘宝商品信息的存储方案 2 Redis入门概述2.1 是什么&#xff1f;2.2 能干嘛&#xff1f;2.3 怎么玩&#xff1f;核心…

mybatisPlus中 Mapper层以及Service层的方法 整理分类 以及代码实操

MyBatis-Plus是一个基于MyBatis的增强工具&#xff0c;旨在简化开发、提高效率。它提供了通用的mapper和service&#xff0c;可以在不编写任何SQL语句的情况下&#xff0c;快速实现对单表的CRUD、批量、逻辑删除、分页等操作。 功能代码测试前提&#xff1a; 需要对mybatisPl…