LoginSignup
1
1

More than 1 year has passed since last update.

Go開発入門 静的チェックツール編

Last updated at Posted at 2022-03-26

はじめに

Goの静的チェックのためのツール群をコマンドとともにいくつか紹介します。

ツール編

gofmt

goのコード整形ツールです。
Go teamによって標準化されています。

 gofmt -l -w main.go  

golint

goらしくない書き方を指摘するツールです。

golint . 

go vet

goのバグを指摘するツールです。

go vet main.go

errcheck

エラーチェック漏れを指摘するツールです。

 errcheck  github.com/foo

例えば、下記のようなエラーチェックを行っていないと指摘されます

	if err := router.Run(); err != nil {
		log.Fatalf("server cant start :%v", err)
	}

応用編

makefile

上記を統合してMakefileを作りましょう。
メリットは、コマンド間の依存関係を定義できる点です。
たとえば、 下記の場合、make build (単に makeで可)の前に go fmt, errcheck, およびgo vetが実行されていることを保証できます。

.DEFAULT_GOAL := build

fmt:
	go fmt ./...
.PHONY:fmt

lint: fmt
	golint ./...
.PHONY:lint

vet: fmt
	go vet ./...
.PHONY:vet

errcheck: vet
	errcheck ./...
.PHONY:errcheck

build: errcheck
	go build .
.PHONY:build

run: errcheck
	go run .
.PHONY:run

自動整形

フォーマットはエディターで自動化すると良いです。
vscodeの場合は次のような設定をします。

  1. Go for Visual Studio Codeというプラグインをインストール
  2. setting.jsonの記述
  "editor.formatOnSave": true,
  "[go]": {
    "editor.defaultFormatter": "golang.go"
  },
1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1