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,可得到输出:
注:上图的 FeHelper 是个浏览器插件,可以更加好的展示如 JSON 格式数据
上面说的 传统运行 go 的方式 也即冷启动,每次改动东西后,需要重新手动启动程序。接下来咱们使用 热启动,直接键入 fresh
前端展示效果是一样的,这个时候如果你改了东西,直接保存,它不用再重启服务,就可以直接帮你把修改后的渲染到页面了。
再补充一下,如果你在执行 fresh
命令碰到报错: fresh: 未找到命令。则你可能需要做个软连接:
sudo ln -s ~/go/bin/fresh /usr/bin
这样应该就可以了。
来源:https://juejin.cn/post/7133507084381306911


猜你喜欢
- 这篇文章主要介绍了简单了解Python3 bytes和str类型的区别和联系,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的
- 介绍本文主要介绍如何在Flask框架中使用pyecharts,关于Flask框架使用这里不做具体说明~Flask模板渲染首先需要创建一个fl
- 前言order by满足两种情况,会使用 index 方式排序:order by语句使用索引最左前列(最左匹配法则)where子句和orde
- 前言大家应该都有所体会,为了提高验证码的识别准确率,我们当然要首先得到足够多的测试数据。验证码下载下来容易,但是需要人脑手工识别着实让人受不
- 1、前言函数也是一个对象,从而可以增加属性,使用句点来表示属性。如果内部函数的定义包含了在外部函数中定义的对象的引用(外部对象可以是在外部函
- 最近的一些疫情信息很让人揪心,为了方便大家掌握疫情信息,在空闲之余做了一个关于 nCoV 的疫情监控小助手。主要的功能是通过企业微信的 We
- 对于有的vps,系统默认安装了mysql。我们需要从我们的服务器、vps上卸载(移除)默认的mysql。那么如何(怎样)在ubuntu\De
- 今天弄了一天,总算把win2003下的问题给解决了, LoadModule php5_module E:\server\php528\php
- 这样的语句,很显然,造成这个原因是因为setcookie造成的,查了一下网上,有如下的解释:
- 无论是在小得可怜的免费数据库空间或是大型电子商务网站,合理的设计表结构、充分利用空间是十分必要的。这就要求我们对数据库系统的常用数据类型有充
- golang中list包用法可以参看这篇文章但是list包中大部分对于e *Element进行操作的元素都可能会导致程序崩溃,其根本原因是e
- Python 中导入csv数据的三种方法,具体内容如下所示:1、通过标准的Python库导入CSV文件:Python提供了一个标准的类库CS
- output输出打包后的代码,配置如何输出和输出位置在webpack.config中output包含以下属性:path:代码打包后要输出的位
- 在Python中处理异常使用的是try-except代码块,try-except代码块放入让python执行的操作,同时告诉python程序
- Python自动的os库是和操作系统交互的库,常用的操作包括文件/目录操作,路径操作,环境变量操作和执行系统命令等。文件/目录操作获取当前目
- 什么是分页技术 分页,是一种将所有数据分段展示给用户的技术.用户每次看到的不是全部数据,而是其中的一部分,如果在其中没有找到自习自
- 有时候用phpMyAdmin的时候会突然出现这个错误信息 “无法在发生错误时创建会话,请检查 PHP 或网站服务器日志,并正确配置 PHP
- 文件的io操作的缓冲行为分为全缓冲:同系统及磁盘块大小有关,n个字节后执行一次写入操作行缓冲:遇到换行符执行一次写操作无缓冲:立刻执行写操作
- 本文实例讲述了python实现简单ftp客户端的方法。分享给大家供大家参考。具体实现方法如下:#!/usr/bin/python# -*-
- 一、根据vux文档直接安装,无需手动配置npm install vue-cli -g // 如果还没安装vue init ai