热加载
一般称为hot loading,指在应用程序运行时动态加载或替换代码、配置或资源,而无需停止或重新启动应用程序。
通过热加载,可以在运行时更新应用程序的部分内容,而不会中断服务或造成停机时间。
对于开发人员来说,hot loading更多的体现在更改了文件内容之后,不需要编译实时的就能看到改变后的结果。
这种特性一般来说都是解释性语言的专利,golang作为编译型语言无法做到真正的热加载。
但是由于golang编译速度足够快,所以有一些工具通过监听文件变化,重新编译运行来实现伪热加载功能。
工具air
推荐一个自用的工具air
github官方仓库地址
工具本身没什么可说的,用起来也是极为简单
推荐使用golang的module管理工具全局安装
1 | 安装air |
效果

图中右下角第一个ok1就是修改之前的
只要保存文件,就触发了air的自动编译,再次请求就是ok2了,非常的方便
goland多次保存的问题
有的时候goland会因为格式化或者其他原因保存多次,如果不做任何特殊配置会导致air重新编译n次(n=保存的次数)
因为几次保存几乎都是同时进行的, 所以只需要在配置文件里设置delay = 100即可有效解决问题