Go 热加载之fresh详解

作者:极智视界 时间:2024-03-23 14:27:26 

热加载是指可以在不重启服务的情况下,保存后即可让更改的代码生效的一种开发模式。热加载可以显著的提升开发和调试的效率,有了热加载后,说明你不用重新再编译、再执行了。

特别是涉及到效果渲染,如前端的开发中,如果每次改了代码后都要重新编译再执行,那开发效率太低了。

最完美的就是:代码改了啥,我一保存,前端页面马上就能显示我改了啥,这样就十分方便。

同样 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,可得到输出:

Go 热加载之fresh详解

注:上图的 FeHelper 是个浏览器插件,可以更加好的展示如 JSON 格式数据

上面说的 传统运行 go 的方式 也即冷启动,每次改动东西后,需要重新手动启动程序。接下来咱们使用 热启动,直接键入 fresh

前端展示效果是一样的,这个时候如果你改了东西,直接保存,它不用再重启服务,就可以直接帮你把修改后的渲染到页面了。

再补充一下,如果你在执行 fresh 命令碰到报错: fresh: 未找到命令。则你可能需要做个软连接:

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

这样应该就可以了。

来源:https://juejin.cn/post/7133507084381306911

标签:Go,热加载,fresh
0
投稿

猜你喜欢

  • Oracle数据安全面面观

    2010-07-27 13:27:00
  • 基于python实现Pycharm断点调试

    2021-05-18 03:16:22
  • Opencv对象追踪的示例代码

    2021-03-02 06:35:38
  • flash与asp/php/asp.net通信的方法第1/3页

    2023-11-15 03:43:03
  • SQL语句实例说明 方便学习mysql的朋友

    2024-01-22 19:48:50
  • Golang的关键字defer的使用方法

    2023-07-12 21:10:49
  • Go语言ORM包中使用worm构造查询条件的实例详解

    2024-05-21 10:18:19
  • Python实战之实现获取动态图表

    2023-10-31 14:03:34
  • Python re正则表达式元字符分组()用法分享

    2021-05-15 12:31:56
  • sql 修改表的所有者

    2024-01-14 15:05:19
  • OpenCV半小时掌握基本操作之直方图

    2022-01-30 10:19:28
  • python自动化生成IOS的图标

    2021-04-26 19:16:34
  • sqlserver2005 TSql新功能学习总结(数据类型篇)

    2024-01-28 10:46:07
  • Pycharm 如何设置HTML文件自动补全代码或标签

    2021-08-12 17:47:15
  • Python实现企业微信通知机器人的方法详解

    2021-03-12 09:56:02
  • 浅析python3中的os.path.dirname(__file__)的使用

    2021-11-10 04:35:23
  • 实例讲解Python脚本成为Windows中运行的exe文件

    2023-07-15 02:14:31
  • Python OpenCV 使用滑动条来调整函数参数的方法

    2022-05-20 06:43:48
  • 再谈 MySQL 数据库备份恢复和乱码问题

    2009-08-19 09:35:00
  • 对python 中class与变量的使用方法详解

    2023-12-27 19:22:10
  • asp之家 网络编程 m.aspxhome.com