如何發現優秀的開源項目?

3 月,跳不動了?>>> hot3.png java

以前發過一系列有關 GitHub 的文章,有同窗問了,GitHub 我大概瞭解了,Git 也差很少會使用了,可是 仍是搞不清 GitHub 如何幫助個人工做,怎麼提高個人工做效率?python

問到點子上了,GitHub 其中一個最重要的做用就是發現全世界最優秀的開源項目,你沒事的時候刷刷微博、知乎,人家沒事的時候刷刷 GitHub ,看看最近有哪些流行的項目,長此以往,這差距就愈來愈大,那麼如何發現優秀的開源項目呢?這篇文章我就來給你們介紹下。android

  1. 關注一些活躍的大牛

GitHub 主頁有一個相似微博的時間線功能,全部你關注的人的動做,好比 star、fork 了某個項目都會出如今你的時間線上,這種方式適合我這種比較懶的人,不用主動去找項目,而這種基本是我天天獲取信息的一個很重要的方式。不知道怎麼關注這些人?那麼很簡單,關注我 stormzhang ,以及我 GitHub 上關注的一些大牛,基本就差很少了。ios

圖片描述git

  1. Trending

點擊下圖的 Explore 菜單到「發現」頁面程序員

圖片描述github

緊接着點擊 Trending 按鈕面試

圖片描述算法

這個 Trending 頁面是幹嗎的呢?直譯過來就是趨勢的意思,就是說這個頁面你能夠看到最近一些熱門的開源項目,這個頁面能夠算是不少人主動獲取一些開源項目最好的途徑,能夠選擇「當天熱門」、「一週以內熱門」和「一月以內熱門」來查看,而且還能夠分語言類來查看,好比你想查看最近熱門的 Android 項目,那麼右邊就能夠選擇 Java 語言。shell

圖片描述

這樣頁面推薦你們每隔幾天就去看下,主動發掘一些優秀的開源項目。

  1. Search

除了 Trending ,還有一種最主動的獲取開源項目的方式,那就是 GitHub 的 Search 功能。

舉個例子,你是作 Android 的,接觸 GitHub 沒多久,那麼第一件事就應該輸入 android 關鍵字進行搜索,而後右上角選擇按照 star 來排序,結果以下圖:

圖片描述

若是你是學習 iOS 的,那麼不妨一樣的方法輸入 iOS 關鍵字看看結果:

圖片描述

能夠看到按照 star 數,排名靠前基本是一些比較火的項目,必定是頗有用,纔會這麼火。值得一提的是左側依然能夠選擇語言進行過濾。

而對於實際項目中用到一些庫,基本上都會第一時間去 GitHub 搜索下有沒有相似的庫,好比項目中想採用一個網絡庫,那麼不妨輸入 android http 關鍵字進行搜索,由於我只想找到關於 Android 的項目,因此搜索的時候都會加上 android 關鍵字,按照 star 數進行排序,咱們來看下結果:

圖片描述

能夠看到 Retrofit、OkHttp、android-async-http 是最流行的網絡庫,只不過 android-async-http 的做者不維護了,以前不少人問我網絡庫用哪一個比較好?哪怕你對每一個網絡庫都不是很瞭解,那麼單純的按照這種方式你都該優先選擇 Retrofit 或者 OkHttp,而目前絕大部分 Android 開發者確實也都是在用這兩個網絡庫,固然還有部分在用 Volley 的,由於 google 沒有選擇在 GitHub 開源 volley,因此搜不到 volley 的上榜。

除此以外,GitHub 的 Search 還有一些小技巧,好比你想搜索的結果中 star 數大於1000的,那麼能夠這樣搜索:

android http stars:>1000

固然還有其餘小技巧,可是我以爲不是很重要,就很少說了。

有些人若是習慣用 Google 進行搜索,那麼想搜索 GitHub 上的結果,不妨前面加 GitHub 關鍵字就ok了,好比我在 google 裏輸入 GitHub android http ,每一個關鍵字用空格隔開,而後搜索結果以下:

圖片描述

能夠看到,基本也是咱們想要的結果,只不過排序就不是單純的按照 star 來排序了。

福利大放送

相信以上三種方法夠你們遨遊在 GitHub 的海洋了,最後給你們獻上一些福利,這些項目是 GitHub 上影響力很大,同時又對大家頗有用的項目:

free-programming-books 這個項目目前 star 數排名 GitHub 第三,總 star 數超過6w,這個項目整理了全部跟編程相關的免費書籍,並且全球多國語言版的都有,中文版的在這裏:free-programming-books-zh,有了這個項目,理論上你能夠獲取任何編程相關的學習資料,強烈推薦給大家!

oh-my-zsh 俗話說,不會用 shell 的程序員不是真正的程序員,因此建議每一個程序員都懂點 shell,有用不說,裝逼利器啊!而 oh-my-zsh 毫無疑問就是目前最流行,最酷炫的 shell,很少說了,懂得天然懂,不懂的之後大家會懂的!

awesome GitHub 上有各類 awesome 系列,簡單來講就是這個系列蒐羅整理了 GitHub 上各領域的資源大彙總,好比有 awesome-android, awesome-ios, awesome-java, awesome-python 等等等,就不截圖了,大家自行去感覺。

github-cheat-sheet GitHub 的使用有各類技巧,只不過基本的就夠咱們用了,可是若是你對 GitHub 超級感興趣,想更多的瞭解 GitHub 的使用技巧,那麼這個項目就恰好是你須要的,每一個 GitHub 粉都應該知道這個項目。

android-open-project 這個項目是我一個好朋友 Trinea 整理的一個開源項目,基本囊括了全部 GitHub 上的 Android 優秀開源項目,可是缺點就是太多了不適合快速搜索定位,可是身爲 Android 開發不管如何大家應該知道這個項目。

awesome-android-ui 這個項目跟上面的區別是,這個項目只整理了全部跟 Android UI 相關的優秀開源項目,基本你在實際開發終於到的各類效果上面都幾乎能找到相似的項目,簡直是開發必備。

Android_Data 這個項目是個人邪教羣的一位管理員整理的,幾乎包括了國內各類學習 Android 的資料,簡直太全了,我爲這個項目也稍微作了點力,強烈推薦大家收藏起來。

AndroidInterview-Q-A 這個就很少說了,以前給你們推薦過的,國內一線互聯網公司內部面試題庫。

LearningNotes 這是一份很是詳細的面試資料,涉及 Android、Java、設計模式、算法等等等,你能想到的,你不能想到的基本都包含了,能夠說是適應於任何準備面試的 Android 開發者,看完這個以後別說你還不知道怎麼面試!

總結

GitHub 上優秀開源項目真的是一大堆,就不一一推薦了,授人以魚不如授人以漁,請你們自行主動發掘本身須要的開源項目吧,不論是應用在實際項目上,仍是對源碼的學習,都是提高本身工做效率與技能的很重要的一個渠道,總有一天,你會忽然意識到,原來不知不覺你已經走了這麼遠!