Go 熱加載之fresh詳解

正文

熱加載是指可以在不重啟服務的情況下,保存後即可讓更改的代碼生效的一種開發模式。熱加載可以顯著的提升開發和調試的效率,有瞭熱加載後,說明你不用重新再編譯、再執行瞭。

特別是涉及到效果渲染,如前端的開發中,如果每次改瞭代碼後都要重新編譯再執行,那開發效率太低瞭。

最完美的就是:代碼改瞭啥,我一保存,前端頁面馬上就能顯示我改瞭啥,這樣就十分方便。

同樣 Go 裡面也有這種熱加載的機制,Go 語言具有 部署簡單、並發性好、上手快 的優勢,如 Docker、Kubnernetes 等都是用 Go 開發,現在很多服務的後臺也是用 Go 來寫的,Go 發展迅速,使用人群基數也在不斷擴大。

其實,Go 的熱加載小工具的選擇還是挺多的,除瞭我們這裡要說的 fresh 之外,還有 air、bee、gowatch 等。

咱們開始。

首先確保你已經安裝好瞭 Go 的環境 (Go 環境的安裝特別簡單),然後安裝 fresh,同樣非常簡單:

go get github.com/pilu/fresh

沒錯,這樣就好瞭。怎麼用呢?咱們到 go 的工程目錄下,直接鍵入 fresh 替換原來的 go run main.go,就可以直接跑起來瞭。

為瞭更加好的說明,咱們來舉個例子,用 gin 來舉例吧,編寫一個 main.go 文件:

package main

import (
    "github.com/gin-gonic/gin"
)

func main() {
    // 創建一個默認的路由引擎
    r := gin.Default()
    // 配置路由
    r.GET("/", func(c *gin.Context){
        c.JSON(200, gin.H{  // c.JSON: 返回 JSON 格式的數據
            "message": "Hello world! I from Gin.",
        })
    })
    // 啟動 HTTP 服務,監聽 8080 端口
  r.Run(":8080")
}

傳統運行 go 的方式:

go run main.go

打開 chrome,輸入 IP:8080,可得到輸出:

註:上圖的 FeHelper 是個瀏覽器插件,可以更加好的展示如 JSON 格式數據

上面說的 傳統運行 go 的方式 也即冷啟動,每次改動東西後,需要重新手動啟動程序。接下來咱們使用 熱啟動,直接鍵入 fresh

前端展示效果是一樣的,這個時候如果你改瞭東西,直接保存,它不用再重啟服務,就可以直接幫你把修改後的渲染到頁面瞭。

再補充一下,如果你在執行 fresh 命令碰到報錯: fresh: 未找到命令。則你可能需要做個軟連接:

sudo ln -s ~/go/bin/fresh /usr/bin

這樣應該就可以瞭。

以上就是Go 熱加載之fresh詳解的詳細內容,更多關於Go 熱加載 fresh的資料請關註WalkonNet其它相關文章!

推薦閱讀: