先看再點贊,給自己一點思考的時間,微信搜尋【沉默王二】關注這個靠才華苟且的程式設計師。
本文 GitHub github.com/itwanger 已收錄,裡面還有一線大廠整理的面試題,以及我的系列文章。
前幾天,看到一位朋友程式設計師小浩在文章裡分享他的開源專案,上了 GitHub 的趨勢日榜單,並且成功排名第一。我表示很酸,因為我也想有一個上千 star 的開源專案,到時候就可以肆無忌憚地吹牛逼了。
對於優秀的程式設計師來說,搜尋引擎就該用 Google,找開源專案就該用 GitHub,找答案就該用 Stack Overflow,對吧?
如果能夠擁有一個 star 數上萬的 GitHub 倉庫,那簡直就是偶像級的開源作者。出去找工作的時候,在簡歷上就那麼一曬,面試官就啞口無言了。
不過現實往往比較骨幹,來看看我的 GitHub 倉庫就能感受到了。

最多 star 的還是多年前寫的一個二維碼分享海報的倉庫,僅僅 48 個,慘不忍睹啊,可憐得我一把鼻涕一把淚啊。可能有些讀者看到這幅圖後會覺得不舒服,“二哥,你可是我的偶像啊,怎麼 GitHub 這麼弱!”
但在我看來,挺正常的,一個人的精力是有限的,做到全方面優秀的都是屈指可數。況且,我看到了巨大的潛力,對,我的 GitHub 上升空間很大,只要我能拼一拼,超過 48 個 star 的倉庫應該能實現吧?!
對於大多數普通的程式設計師來說,包括我,雖然不能成為優秀的開源作者,但利用 GitHub 找到一些優質的開源專案還是很有必要的。造輪子我們不行,“拿來主義”還不行?那怎麼找到這些優質的開源專案呢?
01、GitHub 上直接搜專案
GitHub 主頁上會有一個搜尋框,直接在裡面搜專案的關鍵字就行了,比如說微信支付這個關鍵字。

目前能搜到 2754 個倉庫,比較多。

這種搜尋的方式等同於在搜尋框中加了一個 in:description
或者 in:about
。


那這個 description 和 about 又是什麼意思呢?指的是倉庫的簡介,見下圖的紅色框區域。

那 in 後的關鍵字還有沒有別的呢?有,可以是 in:readme
。

對於大部分中文的倉庫來說,readme 部分是最詳細的。區分一個倉庫優質不優質,就看 readme 部分寫得夠不夠認真。
我的個人部落格用的 GitHub Pages, 地址如下:
https://github.com/itwanger/itwanger.github.io
我昨天剛把這個倉庫的 readme 整了整,比之前看起來高大上多了。自我感覺良好,以後我要花點精力好好維護下,讀者朋友們敬請期待啊,我敢肯定,在不久的將來,star 數肯定會超過 48,我敢賭 100 塊!

那通過 in:readme
後的倉庫數量有點多,達到了 16432 個,也太多了,怎麼能精選一下呢?
一個倉庫之所以優質,就在於它的 star 數是否足夠多,因此可以在後面加上 stars>2000
,這樣過濾後的結果就少了很多。

02、GitHub 上直接搜作者
重要的引數有下面這 4 個,location 是所在的國家,language 是程式語言,followers 是關注人數,fullname 是作者名。

比如我搜 location:china followers:>4000
,注意左側選中「Users」,排名比較靠前的兩位是阮一峰和尤雨溪大佬。

檢視一下尤雨溪大佬的主頁,頭像真的非常清秀帥氣,我第一印象知道想到了誰嗎?徐志摩。前端框架 Vue.js 的作者, 真的非常牛逼了。

作者牛逼,那自然他的專案也就優質——基本上是個不可推翻的定理。
03、Google 直接搜
還拿之前“微信支付”這個關鍵字,百度搜到的結果如下所示:

換成 Google 呢?

對,第一個就是我想要的。

star 數高達 20k,可以說非常優質的專案了。我在做商城的時候就用的這個,微信開發的 Java SDK,支援包括微信支付、開放平臺、公眾號、企業微信/企業號、小程式等微信功能的後端開發。
04、GitHub Trend
對,就是文章開頭提到的 GitHub 趨勢榜,地址如下:
就如宣傳語裡說的,瞭解 GitHub 社群今天最激動人心的倉庫或者作者。下圖中第四位就是小浩的,牛逼牛逼。

可以選擇程式語言,也可以選擇日榜、周榜、月榜。
選擇作者的話,可以看到一些優質的專案。

05、GitHub Topics
GitHub Topics 展示了最新和最流行的討論主題,在這裡不僅能夠看到開源專案,還能看到更多非開發技術的討論主題。地址如下:
不過,主題這塊有個缺點,就是它的排序是按照首字母從 A 到 Z 的排列,這就導致如果我想看 Java 的話,就需要 load more 再 load more,再 load more,嗯,還是看不到。

希望 GitHub 在這方面改進一下,最起碼可以選擇一下。幸好幸好,load more 下面有一個 popular,裡面有 Java 的標籤。

點選標籤就可以跳轉到 Java 的主題了,排名第二的竟然是我的好朋友 guide 哥的倉庫,star 已經 84k+ 了,牛逼牛逼。

06、GitHub Explore
Explore 就是探索的意思,它會根據你的喜歡智慧化地推薦一些專案。地址如下所示:
我不知道這個探索演算法是怎麼算的,感覺給我推薦的專案還不夠優秀,可能是我自己的 GitHub 還不夠優秀吧。

07、牛人推薦
很多大學生讀者問我,“二哥,聽說現在公司招聘的時候非常看重專案經驗,可我在大學的時候沒有專案經驗啊!怎麼辦?”
看 GitHub 上那些大牛們的開源專案,就是增加專案經驗的一個很好的辦法。把開源專案 down 到本地,然後看原始碼自己研究,順帶在原有的基礎上補充一些功能,是不是就有專案經驗了?
本身這些開源專案都是非常優質的,但功能並不會非常全面,畢竟作者的精力和時間有限。
雖然我不是 GitHub 上牛逼的作者,但摸著良心講,開發經驗還是非常充足的,所以我推薦的專案還是非常值得去學習的。
第一個,微人事(vhr),我的好朋友江南一點雨的。

推薦很多次了,我覺得有必要找他要一個貢獻者的角色,以後我也可以出去吹牛逼了。
第二個,電商系統(mall),我的好朋友 macrozheng 的。

我們公司的商城系統升級的時候,就用了他這個作為地基,真的是非常給力的一個開源專案。
08、最後
發現了優質專案,不只是要去 star 它,最好 fork 到自己名下,去研究研究原始碼。
如果可以的話,可以嘗試去解決幾個 issue,提幾個 pull Request,如果能混到一個貢獻者的名額,就開心了哈,畢竟自己頭像出現在 readme 裡也是非常驕傲的一件事。
最後,希望讀者朋友們都能夠玩的開心,畢竟 GitHub 是全球最大的同性交友社群(狗頭)。
我是沉默王二,一枚有顏值卻靠才華苟且的程式設計師。關注即可提升學習效率,別忘了三連啊,點贊、收藏、留言,我不挑,奧利給。
最近,有很多讀者問我,有沒有大廠的面經?那問二哥就對了,微信搜尋「沉默王二」,回覆「面試」就有三份我精心為你準備的刷題寶藏,本文 GitHub github.com/itwanger 已收錄,歡迎 star。