goland集成fmt goimports gometalinter

三个工具介绍 go fmt是用来规范go文件格式,比如格式化单个文件 go fmt xxx.go goimports 用来检查导入包,导入依赖包,删除不依赖的包 gometalinter 集成go语言几乎所有检测工具,静态分析代码,包含功能如下 go vet -工具可以帮我们静态分析我们的源码存在的各种问题,例如多余的代码,提前return的逻辑,struct的tag是否符合标准等。 go tool vet --shadow -用来检查作用域里面设置的局部变量名和全局变量名设置一样导致全局变量设置无效的问题 gotype -类型检测用来检测传递过来的变量和预期变量类型一致 gotype -x

go
发布于 5年前

golang优雅重启

目的 不关闭现在的链接 启用新的代码并处理新的请求 中间不能出现拒绝服务 流程 替换可执行程序 发送 SIGUSR2 信号 停止老进程继续接受新请求,并在处理完已有请求后停止 启动新的进程并接受新请求 实现 我根据上面要求写了一个简单的库gracefulServer,可以参考下 比如以gin为例使用该库实现优雅重启,代码如下: package main import ( "github.com/gin-gonic/gin" "time" "net/http" "github.com/yushuailiu/gracefulServer" ) func

go
发布于 5年前

使用WaitGroup等待goroutine执行完成

package main import ( "sync" "fmt" "time" ) func main() { var wg sync.WaitGroup ch := make(chan int) goroutineNum := 2 for i := 0; i < goroutineNum; i ++ { wg.Add(1) go doSomeThing(i, ch, &wg) } for j := 0; j < goroutineNum; j ++

go
发布于 5年前

awesome-go

awesome-go 这里记录下我是用到或则感觉比较好的 golang 库 mine projects ssh-auto——管理ssh登陆信息 easygin——基于gin的web开发库 gracefulServer——web server优雅重启的库 gorename——一行命令重命名包名 Web Framewoks gin——性能极好的web server frameworks Console fatih/color——命令行输出颜色库 Database gorm——一个蜂场友好的ORM库,支持MySQL PostgreSQL splite3 SQL server等 go-

go
发布于 5年前