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

之前發過一系列有關 GitHub 的文章,有同學問了,GitHub 我大概了解了,Git 也差不多會使用了,但是 還是搞不清 GitHub 如何幫助我的工作,怎么提升我的工作效率?

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

1. 關注一些活躍的大牛

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

圖片描述

點擊下圖的 Explore 菜單到“發現”頁面

圖片描述

緊接著點擊 Trending 按鈕

圖片描述

這個 Trending 頁面是干嘛的呢?直譯過來就是趨勢的意思,就是說這個頁面你可以看到最近一些熱門的開源項目,這個頁面可以算是很多人主動獲取一些開源項目最好的途徑,可以選擇「當天熱門」、「一周之內熱門」和「一月之內熱門」來查看,并且還可以分語言類來查看,比如你想查看最近熱門的 Android 項目,那么右邊就可以選擇 Java 語言。

圖片描述

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

除了 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 上優秀開源項目真的是一大堆,就不一一推薦了,授人以魚不如授人以漁,請大家自行主動發掘自己需要的開源項目吧,不管是應用在實際項目上,還是對源碼的學習,都是提升自己工作效率與技能的很重要的一個渠道,總有一天,你會突然意識到,原來不知不覺你已經走了這么遠!

覺得不錯,不妨隨手轉發、點贊,都是對我良心張莫大的鼓勵!


本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/457056.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/457056.shtml
英文地址,請注明出處:http://en.pswp.cn/news/457056.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

自已開發完美的觸摸屏網頁版仿app彈窗型滾動列表選擇器/日期選擇器

手機端網頁版app在使用下拉列表時,傳統的下拉列表使用起來體驗非常不好,一般做的稍好一點的交互功能界面都不會直接使用下拉列表,所以app的原生下拉列表都是彈窗列表選擇,網頁型app從使用體驗上來當然也應該做成那樣,前…

*args, **kwargs的用法

python 中參數*args, **kwargs def foo(*args, **kwargs): print args , args print kwargs , kwargs print ---------------------------------------if __name__ __main__: foo(1,2,3,4) foo(a1,b2,c3) foo(1,2,3,4, a1,b2,c3) foo(a, 1, None, a1, b2, c3)輸出結果如下&…

一個 js 中值傳遞和引用傳遞的坑。

今天在調試代碼時遇到一個問題,剛開始想不明白,然后分析了一下后,才知道其中的問題,這也是一個基礎的問題,(所以基礎是很重要的) 代碼如下: var a 3; a a * 2; console.log(a); //…

linux運維適合女生么,女生真的不適合做IT行業嗎?Linux運維適合女生學習嗎?

在很多人的腦海中都是女生不適合做IT,IT行業不適合女性。可能傳統的思想中,女生只適合做文職工作,比如說幼師、公務員、會計等,就因為這樣的思想也讓IT行業男女出現了失衡的情況,那么作為女生真的不適合做IT行業嗎?Li…

關于在用異步消息處理機制使用Message.Obtain()方法(而非New Message)獲得一個Message對象的好處

類概述 定義一個包含任意類型的描述數據對象,此對象可以發送給Handler。對象包含兩個額外的int字段和一個額外的對象字段,這樣可以使得在很多情況下不用做分配工作。 盡管Message的構造器是公開的,但是獲取Message對象的最好方法是調用Messag…

python編程中的if __name__ == 'main': 的作用和原理

大多數編排得好一點的腳本或者程序里面都有這段if __name__ main: ,雖然一直知道他的作用,但是一直比較模糊,收集資料詳細理解之后與打架分享。 1、這段代碼的功能 一個python的文件有兩種使用的方法,第一是直接作為腳本執行&…

vim 配置

vim包下載 https://github.com/spf13/spf13-vim 安裝教程 http://blog.csdn.net/u011729865/article/details/49210841 https://www.zhihu.com/question/20151659轉載于:https://www.cnblogs.com/aituming/p/6013279.html

自己簡單封裝的自己項目需要的http請求

2019獨角獸企業重金招聘Python工程師標準>>> package www.tydic.com.util;import java.io.ByteArrayOutputStream; import java.io.DataOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.net.Http…

excel導入linux亂碼怎么解決方法,,請大家都來看下,Excel導入有亂碼?原因出在哪里?應該怎么解決?...

老師,感謝你再次的回答。我按照您的方法操作,轉換utf-8另外為CSV格式,然后這個CSV格式在Notepad 編輯器中打開后,沒有亂碼,μ 符號(希臘字符)正確顯示。我想導入文件已經準備完畢,當我導入的時候&#xff0…

Oracle 正則表達式

一. 正則表達式簡介: 正則表達式,就是以某種模式來匹配一類字符串。一旦概括了某類字符串,那么正則表達式即可用于針對字符串的各種相關操作。例如,判斷匹配性,進行字符串的重新組合等。正則表達式提供了字符串處理的快捷方式。…

python編程中的if __name__ == 'main': 的作用和原理[2]

這個問題來自于知乎用戶的提問,當時看到這個問題,我只是做了下簡單的回答。后來我發現,對于很多人來說,更準確的說應該是大部分的 Python 初學者,對這個問題理解的不是很深刻。所以這里我來做下總結,并試圖…

Java基礎中按值傳遞和引用傳遞詳解

下面是我在網上看到的一個帖子,解釋的感覺挺全面,就轉過來,以供以后學習參考: 1:按值傳遞是什么 指的是在方法調用時,傳遞的參數是按值的拷貝傳遞。示例如下: [java] view plaincopy public cla…

【Foreign】采蘑菇 [點分治]

采蘑菇 Time Limit: 20 Sec Memory Limit: 256 MBDescription Input Output Sample Input 51 2 3 2 31 21 32 42 5Sample Output 10912911HINT Main idea 詢問從以每個點為起始點時,各條路徑上的顏色種類的和。 Solution 我們看到題目,立馬想到了O(n^2)…

c語言迷宮游戲怎么存放坐標,求解迷宮問題(c語言,很詳細哦

《求解迷宮問題(c語言,很詳細哦》由會員分享,可在線閱讀,更多相關《求解迷宮問題(c語言,很詳細哦(5頁珍藏版)》請在人人文庫網上搜索。1、求迷宮問題就是求出從入口到出口的路徑。在求解時 , 通常用的是 “窮舉求解”的方法 ,即從入口出發 ,順某一方向向…

模塊概述

概述 目前代碼比較少,寫在一個文件中還體現不出什么缺點,但是隨著代碼量越來越多, 代碼就越來越難以維護 為了解決難以維護的問題,我們把很多相似功能的函數分組,分別放到不同的文件中取。這樣每個文件所包含的內容相…

【MySQL】PREPARE 的應用

簡單的用set或者declare語句定義變量,然后直接作為sql的表名是不行的,mysql會把變量名當作表名。在其他的sql數據庫中也是如此,mssql的解決方法是將整條sql語句作為變量,其中穿插變量作為表名,然后用sp_executesql調用…

簡歷要求中“ 扎實的JAVA基礎”的學習方法

最近在頭條看到一篇關于Java基礎學習的文章,感覺寫的很不錯,分享一下,希望對大家有幫助 什么東西算作Java基礎?學到什么程度才算扎實? 這些問題的答案,LZ已經用文言文告訴你了,咳咳,…

C++11 tuple的使用

多少分轉載于:https://www.cnblogs.com/DswCnblog/p/6524832.html

c語言程序設計貪吃蛇需求分析,C語言編程新手入門基礎進階學習!貪吃蛇小游戲演示和說明...

C語言是面向過程的,而C++是面向對象的設計貪吃蛇游戲的主要目的是讓大家夯實C語言基礎,訓練編程思維,培養解決問題的思路,領略多姿多彩的C語言。游戲開始后,會在中間位置出現一條只有三個節點的…

解決bash: mysql: command not found 的方法【linux mysql命令 】

linux下,在mysql正常運行的情況下,輸入mysql提示: mysql command not found 遇上-bash: mysql: command not found的情況別著急,這個是因為/usr/local/bin目錄下缺失mysql導致,只需要以下方法即可以解決: …