古老的榕树

让 Go 代码自动加载

发表 2016-04-16 15:14 阅读(3832)
有时 Go 项目开发过程中,让新增、修改的代码智能编译重启,避免人为频繁 build 工作,是不错的事情。然而 Go 是不会内置这些东西的,目前 Go 领域,有哪些类似的库呢?我们可以使用第三方的库实现这种工作,但仅限于开发的阶段,正式服务环境,应该不是非常必要这么做。


第三方实现的类库有这两个,使用起来都很方便:
gin  https://github.com/codegangsta/gin
fresh https://github.com/pilu/fresh

安装大同小异,使用也一样:

安装 gin :
>> go get github.com/codegangsta/gin

安装 fresh :
>> go get github.com/pilu/fresh

使用它们的时候,在控制台里进入项目的根目录下,直接执行以下的语句即可:
进入项目根目录(是自己的项目存放点)指令:
>> cd /home/project/myblog

gin 启动指令:
>> gin

fresh 启动指令:
>> fresh

这时控制台就开始编译打包执行了,注意控制台返回的信息,能知道项目的编译错误和日志,最后会有访问 url。

如果项目 go 文件有新增或修改,gin 和 fresh 都会智能 reload 。


两者有什么区别呢,本人前期使用 gin 来配合 negroni 使用,因为两个东西都是同一个人开发的,兼容性当时想应该不错,就一直用到现在了,不过 gin 有个问题就是,它是有约定的,gin 启动的端口默认是 3000;而自己开发的项目,需要把端口调成 3001,这样 gin 3000端口 才能桥接到 3001 上。

后来试了试 fresh,感觉相当不错,端口没有这个讲究,项目指定什么端口,fresh 启动的时候就是什么端口,够灵活。而且作者还时不时做更新改进,比如日志着色,缩短启动时间,扩大代码的类型等等事情。

而 gin 类似乎已经很久没有更新了,可能作者已经不再维护代码,既然基本够用了,也就不可惜了,有兴趣的同学可以 fork 下来改进改进。

Donate

如果文章对您有帮助,请使用手机支付宝扫描二维码,捐赠X元,作者离不开读者的支持!