• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

go 开发工具指南

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

测试

github.com/onsi/ginkgo
github.com/onsi/gomega

go get -u github.com/onsi/ginkgo/ginkgo

github.com/smartystreets/goconvey/convey
https://github.com/stretchr/testify

性能负载测试和工具

https://github.com/tsenart/vegeta
https://github.com/rs/jplot
https://github.com/rs/jaggr
https://github.com/wg/wrk

rpc框架

rpcx

https://doc.rpcx.io/

go-kit

https://github.com/go-kit/kit
http://gokit.io/

go 代码检测和测试

  1. gofmt
    1. Gofmt formats Go programs. We run gofmt -s on your code
  2. go_vet
    1. go vet examines Go source code and reports suspicious constructs, such as Printf calls whose arguments do not align with the format string.
  3. gocyclo
    1. https://github.com/fzipp/gocyclo
    2. Gocyclo calculates cyclomatic complexities of functions in Go source code. The cyclomatic complexity of a function is calculated according to the following rules: 1 is the base complexity of a function +1 for each \'if\', \'for\', \'case\', \'&&\' or \'||\' Go Report Card warns on functions with cyclomatic complexity > 15.
  4. golint
    1. Golint is a linter for Go source code
  5. license
    1. Checks whether your project has a LICENSE file.
  6. ineffassign
    1. IneffAssign detects ineffectual assignments in Go code.
  7. misspell
    1. Misspell Finds commonly misspelled English words
    2. https://github.com/client9/misspell

golangci

#代码质量审查
run:
  concurrency: 4
  deadline: 2m
  tests: false
  skip-dirs:
    - vendor
    - test
  skip-files:

output:
  format: code-climate
  print-issued-lines: true
  print-linter-name: true

linters-settings:
  errcheck:
    check-type-assertions: false
  golint:
    min-confidence: 0.8
  gofmt:
    simplify: true
  gocyclo:
    min-complexity: 10
  maligned:
    suggest-new: true
  dupl:
    threshold: 100

linters:
  enable-all: true
  disable:
    - lll

issues:
  exclude-use-default: false
  max-issues-per-linter: 0
  max-same-issues: 0
  exclude:

makefile

GOPATH:=$(shell go env GOPATH)

GoVersion=$(shell go version)
BuildTime=$(shell date +%F-%Z/%T)
CommitID=$(shell git rev-parse HEAD)
LDFLAGS=-ldflags "-X \'version.GoVersion=${GoVersion}\' \
-X version.BuildTime=${BuildTime} \
-X version.CommitID=${CommitID}"  

@go build ${LDFLAGS} -v  -o user-api cmd/main.go

gocyclo

gocyclo 用来检查函数的复杂度。
github.com/fzipp/gocyclo
gocyclo -over 12 $(ls -d */ | grep -v vendor)

interfacer

interfacer 是一个有趣的工具,依照作者所说:
这个工具提供接口类型的建议,换句话说,它会对可以本没有必要定义成具体的类型的代码提出警告
github.com/mvdan/interfacer/cmd/interfacer

deadcode

deadcode会告诉你哪些代码片段根本没用。
github.com/tsenart/deadcode

gotype

gotype会对go文件和包进行语义(semantic)和句法(syntactic)的分析,这是google提供的一个工具。
golang.org/x/tools/cmd/gotype

misspell

misspell用来拼写检查,对国内英语不太熟练的同学很有帮助。
github.com/client9/misspell

staticcheck

staticcheck是一个超牛的工具,提供了巨多的静态检查,就像 C#生态圈的 ReSharper 一样。
honnef.co/go/staticcheck/cmd/staticcheck

gosimple

gosimple 提供信息,帮助你了解哪些代码可以简化。
honnef.co/go/simple/cmd/gosimple
译者按: 事实上这个工具和上面的staticcheck工具已经合并为同一个项目了:go-tools,这个项目提供了非常好的工具, 还包括 structlayout-optimize、unused、rdeps、keyify等,值的你去探索。

goconst

goconst 会查找重复的字符串,这些字符串可以抽取成常量。
github.com/jgautheron/goconst/cmd/goconst

使用工具检查你的代码

https://colobu.com/2017/02/07/write-idiomatic-golang-codes/#使用工具检查你的代码

实效Go编程

https://go-zh.org/doc/effective_go.html

Staticcheck-先进的Go linter

https://github.com/dominikh/go-tools
honnef.co/go/tools/... 是用于处理Go代码的工具和库的集合,其中包括短绒和静态分析,其中最突出的是staticcheck。
https://staticcheck.io/docs/
Staticcheck是用于Go编程语言的静态分析工具集。 它带有大量检查,与各种Go构建系统集成,并提供足够的可定制性以适合您的工作流程。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Go语言及Beego框架环境搭建发布时间:2022-07-10
下一篇:
【原】Go语言及Web框架Beego环境无脑搭建发布时间:2022-07-10
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap