那些年的開源項目,你跑起來了嗎?
那些年,我的電腦還只是用來打 Dota 的游戲機。
那些年,我為了完成畢設到處找源碼。
那些年,我第一次知道書后的光盤中竟然藏有代碼。
就這樣我靠著這份代碼順利畢業(yè),和兄弟們互道一句:“分頭打錢,有事兒TP!”,獨自踏上了程序員之路。
那是我第一次體驗到源碼的威力,后來機緣巧合之下我闖入 GitHub 的世界。期間我創(chuàng)建的 HelloGitHub 共分享了 1900 多個開源項目,連載 5 年收獲了 4.9w Star。
我也從最初找不到源碼憤然地叉掉 GitHub 網(wǎng)站,到后來如獲至寶般地收獲了各種開源項目,跌跌撞撞地闖進來了 GitHub 的大門。回想起第一次把開源項目跑起來的場景,我眼中飽含淚水仰天長嘯:“如果當年會這手,就不會被畢設壓制得毫無還手之力!”
隨著開源項目的不斷流行,對開源感興趣的人也越來越多。大多數(shù)剛接觸 GitHub 的人都是為了尋找某個有趣的開源項目、解決問題的開源項目或者是慕名而來(HelloGitHub),但當你準備上手體驗開源項目的時候,可能就會被不知道項目怎么下載、沒找到中文版、不會運行、運行報錯等問題卡住,這時你的雙手已經(jīng)摸到了 GitHub 大門,但就是怎么使勁兒都拽不開!
這些問題我在剛接觸 GitHub 那些年都遇到過,我懂那種無助和沮喪。所以就有了這篇文章,希望我的經(jīng)驗和總結能夠對你有所幫助,同時我還根據(jù)開源項目運行起來的難易程度,將文章分為:需要編程知識 和 不需要編程知識 兩個部分,最后還補充了一些如何快速看懂文檔、找到問題答案的方法。
如果你不止一次嘗試運行開源項目,但都以失敗告終。那這次不管你會不會編程,只要讀完這篇文章就一定能踹開 GitHub 的大門!
一、我不會編程
“東西制造出來就是給人用的!” 只要掌握打開它的方法,就會多一個順手的工具。
HelloGitHub 中有很多讓人想要上手試一試的開源項目,而且大多數(shù)項目根本不需要任何額外的操作和知識下載就能用,想要上手它們只需要找到下載地址就可以了。這里我總結了幾個常見的下載入口:
- Releases:項目發(fā)布頁面
- 官網(wǎng):點進去就會看到下載地址
- 應用商店:拿著應用名字去 谷歌商店(Android)、App Store(macOS)搜索
下面將舉例進行詳細介紹,同時還會有如何在線體驗、如何找到中文版等。
1.1 Releases
Releases 是 GitHub 項目的發(fā)布頁面,這里提供各種安裝包的下載鏈接以及最新版本。比如這個項目:
ShareX:免費的 Windows 截屏錄制工具。功能強大支持全屏截圖、滾動截圖、檢測窗口截圖、GIF 錄制等,截圖后還支持在圖片上增加文字、水印、特效、馬賽克等,最后可直接上傳圖床得到鏈接,絲滑地完成整個截圖流程。
Releases 頁面入口位置如下圖:
點擊進入后就能看到安裝包和源碼壓縮包的下載地址,選擇想要下載的包即可。
最后列舉一下常見的安裝包文件后綴:.exe(Windows)、.dmg(macOS)、.tar.gz(源碼壓縮包、Linux)、.apk(Android)
1.2 官網(wǎng)
有些開源項目并沒有把安裝包放到 Releases 頁面,這個時候就需要去官網(wǎng)下載。這里用 VSCode 舉例,一般情況下開源項目的官網(wǎng)地址,都放在很顯眼的位置(項目首頁),比如 VSCode 就放到了 About 部分。
進入官網(wǎng),下載地址就映入眼簾,還自動匹配了系統(tǒng)。
關鍵字:Download、Releases
1.3 點開就能玩
有些開源項目貼心地提供了在線預覽和試玩的地址,點開就能玩。比如:
react-tetris:用 React+Redux+Immutable 做的俄羅斯方塊,包含詳細的技術介紹。
在線體驗的鏈接一般在:About、項目首頁和官網(wǎng)的 Demo、Online 字眼的鏈接
1.4有沒有中文
雖然 GitHub 上面的英文項目占了很大部分,但其中也有提供了中文描述、中文文檔、中文版本的開源項目。如果你在 GitHub 看到一本很好的開源書籍、教程、資料、文檔,想找找中文版本。可以嘗試在項目首頁、官網(wǎng)尋找關鍵字:中文、Chinese、zh、cn,比如:
git-tips:常用 Git 命令集合。中文版本
總結:不會編程也可以玩 GitHub 開源項目的方法:
- 下載安裝包:Releases、官網(wǎng)
- 在線體驗:Demo、Online 點開就能用
- 找中文的關鍵字:中文、Chinese、zh、cn
二、我會編程
“不重復造輪子” 靠譜的開源項目,可以節(jié)約大量的開發(fā)時間。近距離接觸大神們的代碼,耳濡目染你也會慢慢變強。這部分我將分為:庫、服務和項目,下面將逐一介紹它們的安裝、部署和運行的方法。
2.1 庫
當你找到一個解決問題的庫,不要著急 clone 項目。一般情況下開源庫都提供了對應編程語言的包管理器安裝命令,一條命令就能完成安裝。比如:
- Python:pip install rich
- Go:go get github.com/gorilla/websocket
- Ruby:gem install ruby-pinyin
- JavaScript:npm install echarts --save
- 等等
又或者前端 CSS 和 JS 對應的 CDN 鏈接,直接拿來用即可。
normalize.css:用來消除瀏覽器默認樣式的 CSS 庫。不同瀏覽器對于同一個元素會有不一樣的默認樣式,比如:超鏈接線的顏色。相較于 reset(重制樣式)解決辦法,normalize.css 采用更加和平且高效的方式,解決了瀏覽器默認樣式的問題,盡可能讓同一個 CSS 文件在不同的瀏覽器上顯示效果一樣。
關鍵字:pip、npm、CDN 等
2.2 服務
這里的“服務”特指數(shù)據(jù)庫、緩存、搜索等基礎服務,這種基礎服務的開源項目都會詳細地提供不同操作系統(tǒng)的安裝方式。比如:
meilisearch:Rust 寫的輕量級開源搜索引擎。
部署方式:
- macOS:brew update && brew install meilisearch
- Docker:docker run -p 7700:7700 -v "$(pwd)/data.ms:/data.ms" getmeili/meilisearch
- Linux:curl -L https://install.meilisearch.com | sh
關鍵字:install、brew、docker、curl、apt、yum 等
2.3 項目
其實項目(完整的應用)大多是由庫、基礎服務組成,所以要把一個開源項目跑起來,就三板斧:
- 安裝依賴庫、服務
- 初始化配置
- 找到啟動入口
這里拿一個 Web 項目舉例:
wagtail:強大的開源 Django CMS(內容管理系統(tǒng))。專注于內容管理,不束縛前端實現(xiàn)。有趣的 StreamField 技術讓你的內容變得靈活且不失結構,竟然還支持 A/B 測試,Google 和 NASA 都在用它。
運行步驟:
1. 安裝庫:pip install wagtail2. 初始化項目:wagtail start mysite
3. 進入目錄:cd mysite
4. 安裝依賴:pip install -r requirements.txt
5. 初始化數(shù)據(jù)庫:python manage.py migrate
6. 新建超級管理員:python manage.py createsuperuser
7. 啟動項目:python manage.py runserver
關鍵字:start、run、main、init、begin、server
總結:不同編程語言的項目,在部署、安裝、運行各個步驟都有區(qū)別,但你只需牢記三板斧和關鍵字,就能項目中找到答案。如果沒找到,請看下一部分!
三、作者留下的答案
“你遇到的問題,大多數(shù)情況下別人都遇到過?!?開源項目的作者把項目開源,第一個愿望就是有人用。所以,如果你在使用中遇到問題,先去尋找下作者留下的解決辦法,然后找找有沒有遇到同樣問題的人,沒有的話可以向作者提問。實在不行,就去源碼中尋找答案!
3.1 文檔
項目首頁展示的都是關鍵信息,一般情況下只會給出文檔的鏈接和示例代碼的片段。
如果首頁的信息不夠用,就去文檔中尋找辦法:
- 完整瀏覽文檔的快速開始部分,記下常用函數(shù)和功能(上手)
- 帶著問題看文檔,善用文檔的搜索功能,搜問題的關鍵字(遇到問題)
關鍵字:document、doc、wiki、example、demo、usage
3.2 Issues
Issues 是 GitHub 項目的提問頁面,作者會在這里回復大家的問題。如果你遇到問題,不要著急提問先在 issues 搜一下,看看有沒有相同問題已經(jīng)問過了,沒準就找到解決辦法了。
提問時提供的信息越多:系統(tǒng)、環(huán)境、異常信息、做過的嘗試,得到的答復越準確,解決的時間也最快,最后可以拿著問題再去問問搜索引擎。
關鍵字:issues、error、fail、close
3.3 在源碼中找答案
源碼面前沒有秘密,同時作者也會在注釋中留下線索,助你找到問題的答案。無需下載和安裝插件,僅需 2 步就能在線閱讀源碼:
- 把輸入法切換到英文
- 在項目首頁按下 .
總結:尋找問題最快的方式不是提問,而是找到“答案頁”。你遇到的每個問題都是變強的墊腳石,對問題多些耐心、多些嘗試、少些提問,久而久之你解決問題的能力就會有質的飛躍,運行起開源項目也會更加得心應手。
最后
以上就是我總結的《如何把 GitHub 項目跑起來》的所有方法,希望對你有所幫助。那些年我踩過的坑,希望你通過本文可以輕松躍過。
找找那些年不會玩、運行不起來的開源項目,實驗下本文介紹的方法好不好用。
最后,感謝大家的閱讀,您的每一個點贊和回復都是我創(chuàng)作最大的動力!