很多小伙伴,尤其是在校學生,或者說想轉軟體開發,搞計算機的朋友,總會問一個問題:找作業,沒專案經驗怎么辦?
關于這個問題了,就是上網找開源專案,自學吸收,這是一個獲取專案經驗比較靠譜的途徑
于是就有很多人問,網上的開源專案這么多,怎么找到比較好的,而且持續更新的優質開源專案呢?
首先,打開 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 個左右的 repositories(倉庫) 了,
這時候你去篩選一下就特別容易了,
當下微服務相當地火是吧?那我們搜索一下微服務,那我們怎么搜呢?我們用另外一種方式搜索,在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.
我們可以直接在description(描述)或者readme(自述)里面搜 spider,下面我們選擇在description(描述)里面搜索:
搜索需求:一個英文的 Python 爬蟲倉庫(專案),要求 3000 stars 以上,且最近一個月有過更新
'''一個英文的 Python 爬蟲倉庫(專案),要求 3000 stars 以上,且最近一個月有過更新'''
in:description spider language:python stars:>3000 pushed:>2020-10-10

可以看到現在只有兩個倉庫(專案)了,第 1 個專案為英文專案,第 2 個專案為中文專案,所以說朋友們,description(描述)或者 readme里面包含英文的專案不一定是國外專案,但是description(描述)或者 readme 里面包含中文的專案一般都是國人的專案,
通過上面的演示,朋友們應該都知道通過 description 和 readme 搜索的強大了吧?畢竟專案名是作者的個人主觀上起名的,有一些專案用到的框架、資料庫等等在專案名里面不一定能體現出來,但是一個好的專案用到的技術框架一定會寫在 description 或者 readme 里面,
比如你想搜索 spring security 框架,這個就不能在專案名里面搜索了對吧?
一般專案用了什么框架什么技術都會寫在 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:如果我的博文對你有幫助,歡迎點贊收藏 ~(゜ - ゜) つロ 干杯~
如有疑問,歡迎留言討論~
??
??
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/214472.html
標籤:其他
上一篇:cgb2007-京淘day13
下一篇:位運算子和三目運算子
