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! ;)