網站首頁 編程語言 正文
正文
熱加載是指可以在不重啟服務的情況下,保存后即可讓更改的代碼生效的一種開發模式。熱加載可以顯著的提升開發和調試的效率,有了熱加載后,說明你不用重新再編譯、再執行了。
特別是涉及到效果渲染,如前端的開發中,如果每次改了代碼后都要重新編譯再執行,那開發效率太低了。
最完美的就是:代碼改了啥,我一保存,前端頁面馬上就能顯示我改了啥,這樣就十分方便。
同樣 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
這樣應該就可以了。
原文鏈接:https://juejin.cn/post/7133507084381306911
相關推薦
- 2023-10-13 ECharts日歷熱力圖點擊事件和選中日期加邊框
- 2023-12-23 mybatis的selectOne()方法使用記錄
- 2023-07-09 Go 數組與切片的區別
- 2022-08-15 百行代碼實現基于Redis的可靠延遲隊列_Redis
- 2022-04-01 OpenCV實現摳圖工具_C 語言
- 2023-08-15 :prop父組件給子組件傳遞函數 子組件接收 并default子組件自己的方法 問題
- 2022-02-17 Error: Network Error
- 2022-04-22 Object.assign()是深拷貝還是淺拷貝
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支