用 air 給 Golang/Gin 框架提供熱重啟支援
Golang 這種編譯語言和 Rails/Python 這種指令碼語言不同, 指令碼語言做後端, 只要不是配置和資料庫有變化, 一般都是原始碼一修改後, 最新後端服務就立即生效了.
但是 Golang 做後端, 需要每次修改程式碼以後都要重新編譯後重啟服務才行.
但是每次改完程式碼都切換到終端按 Ctrl + C 也是無比的煩.
對於我這種懶得寫程式碼的懶人, 偉大的Google從來都有現成的方案, 在Mac上直接用下面的命令在後端目錄下執行:
$ curl -fLo ~/air \ https://raw.githubusercontent.com/cosmtrek/air/master/bin/darwin/air $ chmod +x ~/air $ ./air
就是這麼簡單, 配合 FRP, 直接在本地開發, 前端直接呼叫就可以通過阿里雲反向代理到本地開發機進行訪問了.
只要 Golang 原始碼一改, air 會自動重新編譯並重啟, 超級方便, 再也不用按 Ctrl + C 了.
注意:air 這種重新編譯和重啟的方案只適合開發環境, 如果生產環境, 還需要基於 Golang HTTP.shutdown 方案開發更加智慧的子程序熱替換方案, 否則會因為重啟瞬間丟失使用者訪問請求.
That's all, gopher! ;)