让 GO 的代码稳点飞

admin 2023年3月8日17:14:41评论14 views字数 1278阅读4分15秒阅读模式

在写代码的时候,或多或少有一些注意不到的地方,我们有没有办法在运行前就消灭掉一部分Bug呢?它来了,lint

什么是lint

  • 通俗的讲就是静态语法检测,扫描&分析源代码,找出一些不符合规范的代码
  • 我们也可以根据团队的代码规范来自定义lint规则
  • 一切没有工具约束的规范都是耍流氓

如何使用lint

  1. 我们可以在github上找到各种各样的lint,比如unuse code、deprecated api等
  2. 但是这里不推荐自己组合各种各样的lint,而是使用今天的主角 golangci-lint,它是一个lint框架,可以通过配置开启五花八门的lint,功能强大使用灵活

golangci-lint

安装

macos

brew install golangci-lint

shell

curl-sSfLhttps://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | sh -s – -b $(go env GOPATH)/bin

source

go install github.com/golangci/golangci-lint/cmd/golangci-lint@

更多安装方式

简单使用

  • 查看支持哪些lint golangci-lint help linters
让 GO 的代码稳点飞
  • 执行lint,在需要lint的项目中执行 golangci-lint run (如果没有相关的配置文件,会走默认的lint配置)
让 GO 的代码稳点飞

这里就可以根据lint的结果去做相应的修改了

配置文件

  • 我们可以自定义配置文件,定制更符合业务规范的lint规则
run:
  timeout: 5m
  modules-download-mode: readonly

linters:
  disable-all: true
  enable# 下面是开启的lint列表
    - errcheck
    - goimports
    - golint
    - govet
    - staticcheck

linters-settings:
  golint:
    # minimal confidence for issues, default is 0.8
    min-confidence: 0.8

issues:
  exclude-use-default: false
  max-issues-per-linter: 0
  max-same-issues: 0
  • 配置文件介绍
    (https://golangci-lint.run/usage/configuration/)

业务团队中如何推广

为了做好平滑的开启lint,推荐以下方式

  1. 每个项目确定责任人
  2. 分批开放lint规则,先从简单的启用,逐步过渡到符合业务的lint
  3. 在开启一个lint前由负责人先fix掉该lint引起的问题




2022 GopherChina大会报名火热进行中!
各位 Gopher 抓紧哦~
点击文末 [阅读原文
领取专属邀请码 gaowenju 

来为高文举老师打call让 GO 的代码稳点飞

让 GO 的代码稳点飞


大佬已就绪,只差一个你了让 GO 的代码稳点飞

原文始发于微信公众号(GoCN):让 GO 的代码稳点飞

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年3月8日17:14:41
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   让 GO 的代码稳点飞https://cn-sec.com/archives/1241625.html

发表评论

匿名网友 填写信息