gometalinter-golang代码质量检查分析工具
前言最近在研究代码质量检测和分析这一个环节,当然代码质量分析是devops中持续集成部分非常重要的一个环节。涉及到团队协作的时候,很多公司会有自己的一套规则,最熟悉的是阿里巴巴的java代码参考手册,专家总结,大家按照规则去写代码。但是对于devops,有了规则远远不够,还需要提高代码检查的自动化程度,以及与其他的环节合作衔接上。
最终导致维护困难。这就是程序员经常所说的前任留下的坑,往往结果就是新的接任者选择重构。其实对单位也是一直财力和人力的浪费。另外,更无法满足devops的快速上线,快速诊断,快速迭代的目标。 SonarQube 介绍SonarQube 是一个开源的代码分析平台,用来持续分析和评测项目源代码的质量。 通过SonarQube我们可以检测出项目中重复代码, 潜在bug, 代码风格问题,缺乏单元测试等问题, 并通过一个web ui展示出来。 golang代码质量检查分析工具gometalinter 简介该工具基本上集成了目前市场上所有的检测工具,然后可以并发的帮你静态分析你的代码 deadcode dupl errcheck gas goconst gocyclo goimports golint gosimple gotype gotypex ineffassign interfacer lll maligned megacheck misspell nakedret safesql staticcheck structcheck unconvert unparam unused varcheck vet gometalinter安装go get github.com/alecthomas/gometalinter gometalinter --install --update 执行上面的两个命令即可。安装非常简单。 gometalinter 的使用cd 到go项目下,执行 gometalinter ./... bogon:telegraf gaohj$ gometalinter web web/status.go:165::warning: Errors unhandled.,LOW,HIGH (gas) web/status.go:165:10:warning: error return value not checked (w.Write([]byte("welcome telegraf for rc"))) (errcheck) web/status.go:212:19:warning: w can be io.Writer (interfacer) web/status.go:205:25:warning: do not pass a nil Context,even if a function permits it; pass context.TODO if you are unsure about which Context to use (SA1012) (megacheck) web/status.go:205:2:warning: 'if err != nil { return err }; return nil' can be simplified to 'return err' (S1013) (megacheck) vscode集成gometalintervscode 默认使用的是golint,如果想用gometalinter替换golint,直接打开 总结其实接下来会做:
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |