丁香五月天婷婷久久婷婷色综合91|国产传媒自偷自拍|久久影院亚洲精品|国产欧美VA天堂国产美女自慰视屏|免费黄色av网站|婷婷丁香五月激情四射|日韩AV一区二区中文字幕在线观看|亚洲欧美日本性爱|日日噜噜噜夜夜噜噜噜|中文Av日韩一区二区

您正在使用IE低版瀏覽器,為了您的雷峰網(wǎng)賬號安全和更好的產(chǎn)品體驗(yàn),強(qiáng)烈建議使用更快更安全的瀏覽器
此為臨時(shí)鏈接,僅用于文章預(yù)覽,將在時(shí)失效
人工智能 正文
發(fā)私信給skura
發(fā)送

0

GitHub 尋寶指南

本文作者: skura 2019-03-01 11:31
導(dǎo)語:資深程序員的 github 使用心得

雷鋒網(wǎng) AI 科技評論按,本文作者 phodal,原載于知乎專欄,雷鋒網(wǎng)已獲授權(quán)。

作為一個(gè)資深的咨詢師、程序員,GitHub 是我用過的最好工具,因?yàn)?Google 并非總是那么用。GitHub 是一個(gè)寶藏庫,可沒有藏寶圖,GitHub 一 1 億的倉庫也和你沒有關(guān)系。這么一些年下來,也算是掌握了一定的技巧,寫篇文章記錄一下,也就順其自然了。

總結(jié)一句話便是:GitHub 來搜索 Google 搜索不到的。它們可以 work 的原因,都是因?yàn)槲覀兿胱龅氖虑?,已?jīng)有人已經(jīng)走過。如果你走的是一條新的路,那么這篇文章對你來說,意義可能沒有那么大。

GitHub 尋寶指南

尋找 Demo 節(jié)省時(shí)間

在工作上使用新的技術(shù),和自己平時(shí)的練習(xí),終究差得有些遠(yuǎn)。工作的時(shí)候,我們偏向于目標(biāo)編程,對于速度和時(shí)間的要求,要比自己業(yè)余時(shí)間要高得多。一旦有了這種壓力,便會(huì)在 GitHub 上尋找相應(yīng)的 Demo,了解原理、稍微嘗試,再引入到項(xiàng)目中。

這時(shí),便會(huì)技術(shù)棧的關(guān)鍵字搜索,并按更新時(shí)間進(jìn)行排序,以查找是否有合適的 Demo。

生命有限,如若是每次我們嘗試一個(gè)新的技術(shù),總得自己編寫一個(gè)個(gè) Demo。編寫多個(gè) Demo,都得花去個(gè)半天八小時(shí)的時(shí)間。如此一算,能花費(fèi)在其它事情上的時(shí)間便更少了。若只是試用官方的 Demo,往往是比較容易的??晌覀兙帉憫?yīng)用的時(shí)候,總得結(jié)合到當(dāng)前的場合來。這時(shí)整合并不是一個(gè)輕松的工作,依賴沖突、引入第三方依賴等。

溫馨提醒:對于簡單的項(xiàng)目來說,自己直接寫 Demo 會(huì)更加方便。嘗試項(xiàng)目需要成本,若是需要嘗試使用多個(gè)項(xiàng)目,那么有可能就浪費(fèi)時(shí)間。

尋找腳手架:加快前期開發(fā)

無論是后端的微服務(wù)架構(gòu),還是前端應(yīng)用,應(yīng)用的架構(gòu)正在變得復(fù)雜。后端微服務(wù),需要結(jié)合一個(gè)個(gè)的框架,哪怕是 Spring Initializr 這樣的工具,也只能幫助我們搭建項(xiàng)目。我們還需要配合其它工具,一起搭建出一個(gè)基本的系統(tǒng)。對于前端應(yīng)用也是類似的,若是 Angular 這樣大而全的框架,時(shí)間花費(fèi)倒也是不多。如 React 這種需要組合的、小而美的框架,使用官方的 create-react-app 也很難做出我們想要的東西,尋找一個(gè)合適的腳手架是一個(gè)更好的選擇。

這時(shí),我們大抵可以,直接使用技術(shù)棧 + boilerplate 又或者是 starter 等關(guān)鍵詞進(jìn)行搜索,如 react boilerplate。如果其中找到的組合技術(shù)棧,不符合自己的要求,那么再加上相應(yīng)技術(shù)棧的關(guān)鍵字,如 react redux boilerplate 即可。有意思的是,在這時(shí)使用 Google 會(huì)比 GitHub 方便一些。

溫馨提醒:我們需要衡量修改腳手架的成本,是否比自己重頭寫快。

尋找 awesome-xxx:探索可能性

練習(xí)新的框架,我總習(xí)慣于,編寫一系列相關(guān)的 DEMO 項(xiàng)目,然后使用 awesome-xxx 探索可能性。

Awesome-xxx 系列,是 GitHub 上最容易賺 star 的類型。但凡是有一定知識(shí)度的領(lǐng)域、語言、框架等,都有自己的 awesome-xxx 系列的項(xiàng)目,如 awesome-python, awesome-iot, awesome-react 等等。在這樣的項(xiàng)目里,都以一定的知識(shí)體系整理出來的,從索引和查閱上相應(yīng)的方便。如果你想進(jìn)入一個(gè)新的領(lǐng)域,會(huì)嘗試新的東西就搜索 awesome xxx 吧。

溫馨提醒:awesome-xxx 只意味著它們包含盡可能多的資料,并不代表它們擁有所有相關(guān)的庫。

模仿輪子的輪子

大學(xué)時(shí),我在練習(xí)寫嵌入式操作系統(tǒng),uC/OS-II 對于初學(xué)者的我來說,太復(fù)雜了——有太多無關(guān)的代碼。便在網(wǎng)上找尋相關(guān)的實(shí)現(xiàn),也便是找到了一些,在那的基礎(chǔ)上一點(diǎn)點(diǎn)完善操作系統(tǒng)。

學(xué)習(xí)一個(gè)成熟的框架,直接閱讀現(xiàn)有源碼的成本太高,畢竟也不經(jīng)濟(jì)。最好的方式,就是去造輪子。從模仿輪子之上,再去造輪子,是最省力氣的方式。再配合《造輪子與從 Github 生成輪子》一文,怕是能寫一系列的框架。而造一個(gè)相似輪子的想法,往往很多人都有。尤其是一個(gè)成熟的框架,往往有很多仿制品。

于是,當(dāng)你想了解一個(gè)框架,造個(gè)輪子,不妨試試搜索 xxx-like 或者 xxx-like framework,中文便是 仿 react 框架 或者 類 react。如我們在 Google 上搜索 react-like 就會(huì)搜索到 inferno。不過,按 GitHub 的尿性,要搜索到這樣的框架,并不是一件容易的事。這時(shí) Google 往往比 GitHub 搜索好用。

所以建議:平時(shí)上班休息時(shí),搜索相關(guān)的輪子,回家就可以造輪子了。

學(xué)習(xí)資源

GitHub 上擁有大量的學(xué)習(xí)資源,從各類的文章到筆記,還有各式各樣的電子書。如:

只需要搜索: 類型 + 筆記,如 操作系統(tǒng) 筆記 就能找到一些操作系統(tǒng)相關(guān)的筆記。

只需要搜索: 書名 就能找到一些和這本書相關(guān)的資源,如 重構(gòu) 改善既有代碼的設(shè)計(jì)。

與此同時(shí),GitHub 上還會(huì)搜索到各種 未經(jīng)授權(quán)英文書籍的翻譯,又或者是各種電子書的 PDF 版。作為多本書的作譯者,當(dāng)然不鼓勵(lì) GitHub 上找到一些盜版書。

而在 GitHub 上又有一些庫,可以提供相應(yīng)的學(xué)習(xí)資源,如 free-programming-books-zh_CN,即免費(fèi)的編程中文書籍索引。

建議:請尊重版權(quán),哈哈哈。

密鑰/密碼

GitHub 上有太多這樣的東西,盡管我沒有能趕上個(gè)好時(shí)候,找到一個(gè)合適的密鑰。有相關(guān)多的資料泄漏和數(shù)據(jù)庫被扒,和 GitHub 上存在的密鑰和密碼有關(guān)。

不過,好在 GitHub 已經(jīng)在著手解決這個(gè)問題:自動(dòng)刪除相關(guān)的提交、代碼警告等等。

私有、商用的 SDK 或代碼

總有人,會(huì)將一些商用的代碼,或者公司內(nèi)部的代碼,提交到 GitHub 上。如果你偶爾看到這樣的代碼,除了每一時(shí)間告訴作者,還可以偷偷 Clone 一下代碼——雖然這樣做不對,但是我還是想看。

如在 ThoughtWorks 的面試流程里,有一個(gè)步驟是代碼編程的作業(yè),個(gè)人的實(shí)現(xiàn)是不能公開出來的。接到一份作業(yè)的時(shí)候,總會(huì)去 GitHub 搜索相應(yīng)的代碼是否被提交了。提交了,倒是也得提醒一下相應(yīng)的候選人。

過去,我在使用 Phaser 編寫應(yīng)用的時(shí)候,對應(yīng)的粒子系統(tǒng)是收費(fèi)的。由于我只是嘗試這個(gè)粒子系統(tǒng),便沒有購買的想法。我一想 GitHub 上可能有,于是搜索了對應(yīng)的 particle-storm.js,然后就中獎(jiǎng)了。就便愉愉快快地去寫我的 Hello, World,最后發(fā)現(xiàn)它太耗費(fèi)資源了,便放棄了。

建議:一旦你在 GitHub 上拿到別人的商用代碼,請僅用于學(xué)習(xí),并時(shí)刻保持低調(diào)。稍有不慎,有牢獄之災(zāi)。

數(shù)據(jù)及數(shù)據(jù)制作工具

當(dāng)我們需要數(shù)據(jù)的時(shí)候,就會(huì)考慮寫爬蟲。于是 GitHub 上充滿了各各樣的式爬蟲,除此還有得同學(xué)把爬蟲數(shù)據(jù)都放在上面了。某次,當(dāng)我在玩 ElasticSearch 搜索引擎的時(shí)候,突然需要一些真實(shí)的數(shù)據(jù)用來測試。便得找爬蟲,就在 GitHub 上,找到了大眾點(diǎn)評的一些爬蟲。

這個(gè)關(guān)鍵詞,就是: scrapy dianping.com,得來不費(fèi)功夫。

除此,在 AI 相當(dāng)流行的今天也是如此,也可以搜索到其它同學(xué)訓(xùn)練好的模型。

結(jié)論

試試你的 GitHub 搜索功能吧。

雷峰網(wǎng)版權(quán)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見轉(zhuǎn)載須知。

GitHub 尋寶指南

分享:
相關(guān)文章
當(dāng)月熱門文章
最新文章
請?zhí)顚懮暾埲速Y料
姓名
電話
郵箱
微信號
作品鏈接
個(gè)人簡介
為了您的賬戶安全,請驗(yàn)證郵箱
您的郵箱還未驗(yàn)證,完成可獲20積分喲!
請驗(yàn)證您的郵箱
立即驗(yàn)證
完善賬號信息
您的賬號已經(jīng)綁定,現(xiàn)在您可以設(shè)置密碼以方便用郵箱登錄
立即設(shè)置 以后再說