那些年,我的電腦還只是用來打 Dota 的遊戲機。
那些年,我為了完成畢設到處找原始碼。
那些年,我第一次知道書後的光碟中竟然藏有程式碼。
就這樣我靠著這份程式碼順利畢業,和兄弟們互道一句:“分頭打錢,有事兒TP!”,獨自踏上了程式設計師之路。
那是我第一次體驗到原始碼的威力,後來機緣巧合之下我闖入 GitHub 的世界。期間我建立的 HelloGitHub 共分享了 1900 多個開源專案,連載 5 年收穫了 4.9w Star。
我也從最初找不到原始碼憤然地叉掉 GitHub 網站,到後來如獲至寶般地收穫了各種開源專案,跌跌撞撞地闖進來了 GitHub 的大門。回想起第一次把開源專案跑起來的場景,我眼中飽含淚水仰天長嘯:“如果當年會這手,就不會被畢設壓制得毫無還手之力!”
隨著開源專案的不斷流行,對開源感興趣的人也越來越多。大多數剛接觸 GitHub 的人都是為了尋找某個有趣的開源專案、解決問題的開源專案或者慕名而來(HelloGitHub),但當你準備上手體驗開源專案的時候,可能就會被不知道專案怎麼下載、沒找到中文版、不會執行、執行報錯等問題卡住,這時你的雙手已經摸到了 GitHub 大門,但就是怎麼使勁兒都拽不開!
這些問題我在剛接觸 GitHub 那些年都遇到過,我懂那種無助和沮喪。所以就有了這篇文章,希望我的經驗和總結能夠對你有所幫助,同時我還根據開源專案執行起來的難易程度,將文章分為:需要程式設計知識 和 不需要程式設計知識 兩個部分,最後補充了一些如何快速看懂文件、找到問題答案的方法。
如果你不止一次嘗試執行開源專案,但都以失敗告終。那這次不管你會不會程式設計,只要讀完這篇文章就一定能踹開 GitHub 的大門!
一、我不會程式設計
“東西製造出來就是給人用的!” 只要掌握開啟它的方法,就會多一個順手的工具。
HelloGitHub 中有很多讓人想要上手一試的開源專案,而且大多數專案根本不需要任何額外的操作和知識下載就能用,想要上手它們只需要找到下載地址就可以了。這裡我總結了幾個常見的下載入口:
- Releases:專案釋出頁面
- 官網:點進去就會看到下載地址
- 應用商店:拿著應用名字去 谷歌商店(Android)、App Store(macOS)搜尋
下面將舉例進行詳細介紹,同時還會有如何線上體驗、如何找到中文版等。
1.1 Releases
Releases 是 GitHub 專案的釋出頁面,這裡提供各種安裝包的下載連結以及最新版本。比如這個專案:
ShareX:免費的 Windows 截圖錄製工具。功能強大支援全屏截圖、滾動截圖、檢測視窗截圖、GIF 錄製等,截圖後還支援在圖片上增加文字、水印、特效、馬賽克等,最後可直接上傳圖床得到連結,絲滑地完成整個截圖流程。
Releases 頁面入口位置如下圖:
點選進入後就能看到安裝包和原始碼壓縮包的下載地址,選擇想要下載的包即可。
最後列舉一下常見的安裝包檔案字尾:.exe
(Windows)、.dmg
(macOS)、.tar.gz
(原始碼壓縮包、Linux)、.apk
(Android)
1.2 官網
有些開源專案並沒有把安裝包放到 Releases 頁面,這個時候就需要去官網下載。這裡用 VSCode 舉例,一般情況下開源專案的官網地址,都放在很顯眼的位置(專案首頁),比如 VSCode 就放到了 About 部分。
進入官網,下載地址就映入眼簾,還自動匹配了系統。
關鍵字:Download、Releases
1.3 點開就能玩
有些開源專案貼心地提供了線上預覽和試玩的地址,點開就能玩。比如:
react-tetris:用 React+Redux+Immutable 做的俄羅斯方塊,包含詳細的技術介紹。線上試玩
線上體驗的連結一般在:About、專案首頁和官網的 Demo、Online 字眼的連結
1.4 有沒有中文
雖然 GitHub 上面的英文專案佔了很大部分,但其中也有提供了中文描述、中文文件、中文版本的開源專案。如果你在 GitHub 看到一本很好的開源書籍、教程、資料、文件,想找找有沒有中文版本。可以嘗試在專案首頁、官網尋找關鍵字:中文、Chinese、zh、cn,比如:
git-tips:常用 Git 命令集合。中文版本
總結:不會程式設計也可以玩 GitHub 開源專案的方法:
- 下載安裝包:Releases、官網
- 線上體驗:Demo、Online 點開就能用
- 找中文的關鍵字:中文、Chinese、zh、cn
二、我會程式設計
“不重複造輪子” 靠譜的開源專案,可以節約大量的開發時間。近距離接觸大神們的程式碼,耳濡目染你也會慢慢變強。這部分我將分為:庫、服務和專案,下面將逐一介紹它們的安裝、部署和執行的方法。
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 服務
這裡的“服務”特指資料庫、快取、搜尋等基礎服務,這種基礎服務的開源專案都會詳細地提供不同作業系統的安裝方式。比如:
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(內容管理系統)。專注於內容管理,不束縛前端實現。有趣的 StreamField 技術讓你的內容變得靈活且不失結構,竟然還支援 A/B 測試,Google 和 NASA 都在用它。
執行步驟:
1. 安裝庫:pip install wagtail
2. 初始化專案:wagtail start mysite
3. 進入目錄:cd mysite
4. 安裝依賴:pip install -r requirements.txt
5. 初始化資料庫:python manage.py migrate
6. 新建超級管理員:python manage.py createsuperuser
7. 啟動專案:python manage.py runserver
關鍵字:start、run、main、init、begin、server
總結:不同程式語言的專案,在部署、安裝、執行各個步驟都有區別,但你只需牢記三板斧和關鍵字,就能專案中找到答案。如果沒找到,請看下一部分!
三、作者留下的答案
“你遇到的問題,大多數情況下別人都遇到過。” 開源專案的作者把專案開源,第一個願望就是有人用。所以,如果你在使用中遇到問題,先去尋找下作者留下的解決辦法,然後找找有沒有遇到同樣問題的人,沒有的話可以向作者提問。實在不行,就去原始碼中尋找答案!
3.1 文件
專案首頁展示的都是關鍵資訊,一般情況下只會給出文件的連結和示例程式碼的片段。
如果首頁的資訊不夠用,就去文件中尋找辦法:
- 完整瀏覽文件的快速開始部分,記下常用函式和功能(上手)
- 帶著問題看文件,善用文件的搜尋功能,搜問題的關鍵字(遇到問題)
關鍵字:document、doc、wiki、example、demo、usage
3.2 Issues
Issues 是 GitHub 專案的提問頁面,作者會在這裡回覆大家的問題。如果你遇到問題,不要著急提問先在 issues 搜一下,看看有沒有相同問題已經問過了,沒準就找到解決辦法了。
提問時提供的資訊越多:系統、環境、異常資訊、做過的嘗試,得到的答覆越準確,還可以拿著問題再去搜尋引擎碰碰運氣。
關鍵字:issues、error、fail、close
3.3 在原始碼中找答案
原始碼面前沒有祕密,同時作者也會在註釋中留下線索,助你找到問題的答案。無需下載和安裝外掛,僅需 2 步就能線上閱讀原始碼:
- 把輸入法切換到英文
- 在專案首頁按下
.
總結:尋找問題最快的方式不是提問,而是找到“答案頁”。你遇到的每個問題都是變強的墊腳石,對問題多些耐心、多些嘗試、少些提問,久而久之你解決問題的能力就會有質的飛躍,執行起開源專案也會更加得心應手。
最後
以上就是我總結的《如何把 GitHub 專案跑起來》的所有方法,希望對你有所幫助。那些年我踩過的坑,希望你通過本文可以輕鬆躍過。
找找那些年不會玩、執行不起來的開源專案,實驗下本文介紹的方法好不好用。如果沒有就去 HelloGitHub 找找有趣的開源專案吧!
最後,GitHub 訪問慢、無法訪問等網路問題,可以試試: