首页 > 其他分享 >Gin 开发环境下实现代码的热更新部署

Gin 开发环境下实现代码的热更新部署

时间:2024-01-07 12:35:10浏览次数:25  
标签:部署 代码 value -- 应用程序 gin Gin 更新


前言

在开发过程中,实时的热更新和快速部署是 提高开发效率代码调试 的重要因素。

热更新部署介绍

热更新(Hot Reload)是一种开发技术,它使开发人员能够在不重启应用程序的情况下实时更新代码。通常,在传统的开发过程中,当我们对代码进行修改后,需要重新编译和重启应用程序才能看到修改的效果。而热更新则可以实现在代码修改后,应用程序可以自动加载并应用新的更改,无需重新启动。

热更新在开发过程中具有许多优势。首先,它提高了开发效率,因为开发人员无需手动停止和启动应用程序,节省了时间。其次,热更新能够减少开发过程中的中断,开发人员可以立即查看修改的效果,并进行实时调试和测试。另外,热更新还有助于减少应用程序的停机时间,从而提供更好的用户体验。

热更新通常在开发环境或调试阶段使用,用于加快开发迭代过程中的代码修改和调试。在生产环境中,热更新并不常见,因为它可能引入潜在的安全风险和稳定性问题。在生产环境中,通常会采用其他部署策略来确保代码的可靠性和稳定性。

项目中如何使用?

在开发环境下,你可以执行以下脚本来启动服务:

// Mac / Linux 环境,在项目根目录下运行 
./scripts/hotreload.sh

// Windows 环境,在项目根目录下运行
./scripts/hotreload.bat

组件介绍

组件:https://github.com/codegangsta/gin

gin 是一个简单的命令行实用程序,用于实时重新加载 Go Web 应用程序。只需在应用程序目录中运行 gin 命令,你的 Web 应用程序将使用 gin 作为代理进行服务。当 gin 检测到代码更改时,它将自动重新编译你的代码。你的应用程序将在接收到下一次 HTTP 请求时重新启动。

gin 遵循“沉默是金”的原则,因此只有在出现编译器错误或在错误后成功编译时才会发出警告。

gin Options:

--laddr value, -l value:代理服务器的监听地址
--port value, -p value:代理服务器的端口(默认值:3000)
--appPort value, -a value:Go Web 服务器的端口(默认值:3001)
--bin value, -b value:生成的二进制文件的名称(默认值:"gin-bin")
--path value, -t value:要监视文件的路径(默认值:".")
--build value, -d value:要构建文件的路径(默认与 --path 相同)
--excludeDir value, -x value:要排除的相对目录
--immediate, -i:构建完成后立即运行服务器
--all:在任何文件更改时重新加载,而不仅仅是 .go 文件更改
--godep, -g:在构建时使用 godep
--buildArgs value:额外的 go build 参数
--certFile value:TLS 证书文件
--keyFile value:TLS 证书密钥文件
--logPrefix value:设置自定义日志前缀
--notifications:启用桌面通知
--help, -h:显示帮助信息
--version, -v:打印版本信息

go-gin-api

  • GitHub: https://github.com/xinliangnote/go-gin-api
  • 中文文档:https://www.yuque.com/xinliangnote/go-gin-api/ngc3x5

简洁、轻量级 API 框架

  • https://mp.weixin.qq.com/s/d-kfe3Vo10XlQYxAj26f7A


标签:部署,代码,value,--,应用程序,gin,Gin,更新
From: https://blog.51cto.com/u_15183360/9133829

相关文章

  • Gin 实现自动生成接口文档
    自动生成接口文档的好处说之前,先说一下自动生成接口文档有哪些好处?1)节省时间和工作量:手动编写接口文档是一项耗时且繁琐的任务。通过自动生成接口文档,可以大大减少编写文档的时间和工作量,提高开发效率。2)保持文档与代码同步:代码和文档往往是不同步的,当代码发生变更时,手动更新文档可......
  • 基于智能手机的行人惯性追踪数据集模型与部署
    论文总结这篇《Smartphone-basedPedestrianInertialTracking:Dataset,Model,andDeployment》论文介绍了一种基于智能手机惯性测量单元(IMU)的行人追踪和定位系统。主要内容和贡献如下:数据集和实验设计:作者开发了一个智能手机惯性测量数据集(SIMD),包含超过4500条步行轨迹,涵盖了......
  • 如何在GitHub正确提PR(Pull Requests),给喜欢的开源项目贡献代码
    最好的中文TTS项目Bert-vits2更新了中文特化分支,但可能由于时间仓促,代码中存在不少的bug,作为普通用户,有的时候也想为自己喜欢的开源项目做一点点贡献,帮助作者修改一些简单的bug,那么该如何开始?本次我们以Bert-vits2项目为例子,分享正确提交PR(PullRequests)的方式。FORK项目首......
  • 粉色系小白猫登录表单模板html代码
    粉色系登录模板<linkrel="stylesheet"href="css/font-awesome.min.css"type="text/css"media="all"><!--formsectionstart--><sectionclass="w3l-hotair-form"><h1>粉色系登录表单</h......
  • 部署Caddy Web服务器
    部署CaddyWeb服务器的详细方案通常涉及以下几个步骤。这里提供一个基本的部署流程示例:1.下载Caddy访问Caddy官方网站(https://caddyserver.com/download)下载适合你操作系统的Caddy二进制文件。或者,如果你使用的是支持包管理器的操作系统(如Ubuntu或CentOS),可以通过包管理器安装:#Ubu......
  • 快乐学Python,Python基础之代码复用?「函数」
    上一篇文章中,我们了解了代码的分支结构(if家族语句)和循环结构(for循环和while循环)。通过了解这些结构,我们已经能够写出稍微复杂一些的代码。但当代码一多,就会遇到一些问题。上一篇文章中有个案例:根据考试分数打印安全意识分级(优秀、及格和不及格)的代码,如下所示:a=75ifa>8......
  • 部署Docker
    自己在自己电脑部署Docker首先要有虚拟机,然后在虚拟机上装上系统。我这里用的vmware,系统用的centos7。这些上网也能找到下载与安装教程,如果懒得弄,可以私信我,我这里有vm17与centos7.然后要有一个远程连接工具可以使用FinalShell或者XShell都可以。这里就说一下  如何让fina......
  • nginx反向代理SSH和远程桌面连接
       今天在实施一个项目过程中,防火墙厂家已经配置SSH和远程桌面连接的映射关系,为了网络更安全将采取在系统centos7.9安装nginx反向代理SSH和远程桌面连接的办法,现将实现过程记录如下:一、安装nginx(省略)二、查看./nginx-V[root@node1nginx]#cd/usr/local/nginx/[root@node......
  • 一段pytion执行代码,模拟人的收割,我指的是死亡的镰刀
    classPerson:def__init__(self,name):self.name=namedefharvest(self,crop):ifcrop=="死亡的镰刀":print(f"{self.name}被死亡的镰刀杀死了。")else:print(f"{self.name}正在收割{crop}。&qu......
  • 榴弹炮的点火代码,要求迅速、安全
    榴弹炮的点火代码通常由计算机控制,以确保迅速、安全地发射。以下是一个简单的示例,展示了如何使用Python编写榴弹炮的点火代码:importtimeclass榴弹炮:def__init__(self):self.已点燃=Falsedef点火(self):ifnotself.已点燃:print(......