在日常工作中,我們并不推薦去重復(fù)造輪子,通常我們會(huì)去搜索一些穩(wěn)定的第三方開源庫(kù)來使用。而 Github 中,開源的那些代碼庫(kù),就是一個(gè)非常寶貴的資源,很多大型穩(wěn)定的開源項(xiàng)目,都被托管在 Github 之上,這些項(xiàng)目一旦被開源,經(jīng)過廣大開發(fā)者的貢獻(xiàn)之后,其實(shí)很多已經(jīng)趨于穩(wěn)定,靠譜的開源庫(kù)已經(jīng)很難發(fā)現(xiàn)重大 Bug。
但是在 Github 上托管的開源項(xiàng)目非常之多,最簡(jiǎn)單的搜索方式就是在搜索框中,輸入我們要搜索的關(guān)鍵字。這在有明確目標(biāo)的前提下,將非常的高效,但是有時(shí)候我們并不能完整的確定。如何在這一大片資源中,找到我們需要的,就是需要技巧的了。
本文就這個(gè)話題,展開討論,看看如何高效的在 Github 上,搜索我們需要的開源項(xiàng)目。
先來看看,當(dāng)我們直接在 Github 上,搜索項(xiàng)目的時(shí)候,出現(xiàn)的效果。
如圖所示,這里我搜索的是 Glide ,對(duì)于一些優(yōu)秀的開源項(xiàng)目,一般比較靠前的搜索結(jié)果里,就可以搜索出我們想要的項(xiàng)目。
在這個(gè)頁(yè)面,如果想要賽選出搜索結(jié)果,可以在右側(cè)選擇 Languages 來選擇語言,例如我這里搜索的 Glide ,明顯就是想要 Java 的開源庫(kù),所以選擇 Java 就好了。
而如果想要在搜索結(jié)果中,進(jìn)行排序,可以點(diǎn)擊 Sort 來選擇,默認(rèn)是 Best Match ,表示一個(gè)最佳匹配的結(jié)果。
在 Sort 中,可以通過 start 、fork、updated 幾個(gè)指標(biāo)進(jìn)行單獨(dú)排序,一般我們使用 Most starts(按 start 數(shù),降序排序)或者M(jìn)ost forks(按 fork 數(shù),降序排序),就可以了。
通常,這些選擇之后,就已經(jīng)可以精準(zhǔn)的找到我們需要的開源庫(kù)了。假如,還是不確定,可以考慮使用高級(jí)搜索(Advanced search),來進(jìn)行搜索,在搜索結(jié)果的右上角,有快捷入口可以點(diǎn)擊。
在搜索結(jié)果頁(yè),就有 Advanced Search 的快捷入口,如果你沒有找到,你可以直接進(jìn)入:
https://github.com/search/advanced
假如普通的搜索方式,滿足不了你的需要,那么 Advanced Search 就一定是你想要的。
在 Advanced Search 中,你可以最大限度的設(shè)定搜索的條件,例如:作者是誰,來自哪個(gè) repositories ,start 和 fork 數(shù)的范圍等等,非常的全面。
在 Advanced search 的最上面,有一個(gè)搜索框,可以在這里填寫關(guān)鍵字,然后在下面選擇篩選的條件。從上面的例子中,可以看到,當(dāng)你選擇篩選條件之后,搜索框中,同步也會(huì)修改搜索的內(nèi)容,而這些內(nèi)容是遵循 Github 搜索語法的。
舉個(gè)例子,在 Repositories Options 中,你可以設(shè)置一些 start 和 fork 數(shù)的范圍。
可以看到,對(duì)應(yīng)的輸入框,其實(shí)已經(jīng)將提示做的很好了,0..100
標(biāo)識(shí) 0~100 的范圍內(nèi),>1000
標(biāo)識(shí)最少要大于 1000 ,這些都非常的好理解,你可以根據(jù)需求在這里配置。
舉個(gè)例子,假如我需要搜索一個(gè)圖片加載庫(kù),我搜索關(guān)鍵字 'Image loader' ,并且要求 start 數(shù)要大于 1000,最終配置完成的結(jié)果就是。
image loader starts:>1000
這樣的一個(gè)搜索語句,是可以直接在 Github 的搜索框中生效的,如果熟悉這些語法,就不需要依賴 Advanced Search 這個(gè)頁(yè)面了。
這里推薦幾個(gè)常用的語法,其實(shí)更多的我自己也記不住,如果忘了,點(diǎn)開 Advanced Search 就可以了,畢竟是個(gè)熟能生巧的事情。
starts: 限定 start 數(shù),例如 starts:0..100
。
forks:限定 forks 數(shù),例如,forks:>1000
。
user:限定作者,例如,user:airbnb
。
license:限定開源協(xié)議,例如,license:mit
。
topic:限定標(biāo)簽,例如,topic:network
。
更多使用技巧,推薦直接查閱官方文檔,或者在 Advanced Search 頁(yè)面中多試試。
https://help.github.com/categories/searching-for-information-on-github/
還有一個(gè) Topic 搜索的使用技巧,我覺得也非常有用,可以單獨(dú)拿出來說說。對(duì)于開源庫(kù),都是為了解決具體問題,例如訪問網(wǎng)絡(luò)、加載圖片等等,所以會(huì)為其加上不同的 topic 來做為一個(gè)標(biāo)簽的形式,對(duì)開源庫(kù)進(jìn)行標(biāo)記。
對(duì)于 Glide 而言,它的 Topic 就是如上圖所示的這些。這些 Topic 都是可以點(diǎn)擊的,例如我想繼續(xù)看看同樣被 gif
標(biāo)記過的開源項(xiàng)目,直接點(diǎn)擊 gif
就可以了,這樣篩選出來的庫(kù),可能也能解決加載 gif
圖的問題。
GitHub 還專門提供了一個(gè)頁(yè)面,展示目前流行的 Topic:https://github.com/topics。
本文知識(shí)提點(diǎn)了一些 Github 上,可以使用的常用搜索技巧,能更快的幫你找到你需要的開源庫(kù)。一些高級(jí)技巧確實(shí)不常用過一段時(shí)間就忘記了,不過還好有 Advanced Search 頁(yè)面,可以幫我們快速的找到我們需要的篩選條件。
對(duì)于知識(shí),有時(shí)候知道如何找到它,比掌握它更加重要。
你還有什么關(guān)于 Github 搜索的小技巧,可以在留言區(qū)留言,我們一起討論一下。
聯(lián)系客服