GitHub 是全球最受歡迎的開發者平臺,⾃從微軟收購了 GitHub 後,GitHub 的功能就越來越強⼤,除了原有的程式碼管理外,也增加了很多硬貨,這就包括了整合 CI/CD 的 GitHub Actions,以及完善的項⽬管理功能,還有⼀個雲端的開發環境 GitHub CodeSpace。GitHub Codespaces 並不只是⼀個簡單的改改程式碼的編輯器,它還包含了⼀個完整開發環境,讓你可以在雲上開發完整的項⽬。
什麼是 GitHub Codespaces
GitHub Codespaces 是雲端的開發環境,它允許開發⼈員通過瀏覽器或從本地的 Visual Studio Code IDE 直接進⾏除錯、維護、更改、部署 GitHub 上的程式碼。現階段 GitHub Codespaces 只提供給團隊和企業版本。
上圖是官⽅對於 GitHub Codespaces 實現的描述。你可以把 GitHub 看成⼀個傳統的 C/S 架構。在後端使⽤虛擬化技術(容器/虛擬機器)設定你的程式碼,開發環境以及相關依賴等,在前端部分可以通過本地安裝的 Visual Studio Code 或者瀏覽器訪問使⽤。
GitHub Codespaces 有⼏個優點:
- ⾼效能 ⸺ 開發⼈員可以使⽤更好效能的虛擬開發環境,提⾼開發⼈員的⽣產⼒
- ⾼安全 ⸺ 只有授權⽤戶才能訪問 GitHub Codespaces
- 易管理 ⸺ 開發⼈員可以輕鬆地在每個項⽬的基礎上管理依賴項和擴充套件
- ⼀致性 ⸺ 團隊開發⾥,通過 GitHub Codespaces 開發⼈員之間有統⼀的的開發環境,可以⾮常輕鬆地管理項⽬上的依賴和擴充套件
- 跨裝置 ⸺ 基於瀏覽器的編碼體驗意味著可以在任何裝置上進⾏開發,例如:⼿機、iPad、平板電腦等,從⽽提⾼了開發⽣產效率
通過 iPad 開發⼀個 Azure Functions 的項⽬
1.⾸先開啟我的 iPad Safari 瀏覽器,訪問我的⼀個 GitHub Repository,選擇Code 按鈕,再選擇Codespaces 標籤點選 New Codespaces,你就可以啟動⼀個基於該 Repo 下的 Codespaces 環境
2.選擇成功後,會讓你選擇需要的虛擬開發環境配置 (你可以根據你的需要去設定),這⾥我選擇⼀個4核CPU,8G 記憶體,32GB 儲存的虛擬環境
選擇後,需要稍等⽚刻, 這⾥會幫你在雲端開啟虛擬環境
配置成功後,在瀏覽器就可以啟動雲端的 Visual Studio Code 環境
3.按 Cmd + Shift + P 選擇開發開發環境 ( Codespaces: Configure Container Features... ) ,你可以選擇你的應⽤場景和開發的語⾔
如果你是第⼀次會讓你新增相關的⽂件
列表選擇展示所有設定( Show All Definitions...)
選擇 Azure Functions & Python 3
建立成功後,你會看到 Repo 會新增.devcontainer⽂件夾,新增 devcontainer.json 和 Dockerfile
選擇右下⻆ Rebuild / Cmd + Shift + P 選擇 Codespaces: Rebuild Container 就可以配置好你的 Azure Functions 開發環境了
這⾥我要說說在 .devcontainer 下的兩個⽂件
devcontainer.json
devcontainer.json 是 Codespace 下設定的開發環境配置,除了對應的 Dockefile 外,還包括開發需要到的端⼝,設定,以及對應的 Visual Studio Code 外掛安裝。像我這⾥就有開發的 Docker 端⼝,以及 Python/Docker/Azure Functions 等外掛。這個配置環境對於多⼈開發的項⽬是⾮常有⽤的,因為新的開發⼈員不⽤再關⼼開發環境如何配置,節約了配置時間
例如我想安裝 Thunder Client 外掛給到開發團隊 ,就可以在 extensions 欄位新增 "rangav.vscode-thunderclient"
"extensions": [
"ms-azuretools.vscode-azurefunctions",
"ms-azuretools.vscode-docker",
"ms-python.python",
"rangav.vscode-thunder-client"
]
再選擇 Rebuild container 就可以為以後的開發者,安裝好 Thunder Client 元件了
Dockerfile
Dockerfile 就是對應的開發環境設定,當然你也可以根據⾃身開發需要,建立⾃⼰的開發環境容器
4.這個時候你就可以選擇 Azure 環境建立 Azure Functions 應⽤了(這⼀步我就不⼀⼀介紹了,和本地建立是⼀樣的)
5.來談談除錯,可以直接進⾏除錯,就如本地應⽤⼀樣,⾮常⽅便
除錯成功後,你可以同步⼀下程式碼到你的 GitHub
當然你也可以直接通過 GitHub Actions 對 Repo 進⾏ CI/CD 操作,這⾥篇幅有限我就不⼀⼀多說了。
總結
GitHub Codespaces 與 GitHub ⽆縫連線,通過雲端不僅管理好你的程式碼,更可以作為開發環境,直接通過任意瀏覽器就可以完成整個研發週期的⼯作,降低了對本地硬體的依賴。更讓依賴於 GitHub 的個⼈和團隊,提供更好的⽣產⼒。⼩夥伴們快快⽤起來。
相關資源