地方エンジニアの学習日記

興味ある技術の雑なメモだったりを書いてくブログ。たまに日記とガジェット紹介。

go コマンド

go

go -h                                                                                              [01:44:19]
Go is a tool for managing Go source code.

Usage:

    go <command> [arguments]

The commands are:

    bug         start a bug report
    build       compile packages and dependencies
    clean       remove object files and cached files
    doc         show documentation for package or symbol
    env         print Go environment information
    fix         update packages to use new APIs
    fmt         gofmt (reformat) package sources
    generate    generate Go files by processing source
    get         add dependencies to current module and install them
    install     compile and install packages and dependencies
    list        list packages or modules
    mod         module maintenance
    run         compile and run Go program
    test        test packages
    tool        run specified go tool
    version     print Go version
    vet         report likely mistakes in packages

Use "go help <command>" for more information about a command.

Additional help topics:

    buildmode   build modes
    c           calling between Go and C
    cache       build and test caching
    environment environment variables
    filetype    file types
    go.mod      the go.mod file
    gopath      GOPATH environment variable
    gopath-get  legacy GOPATH go get
    goproxy     module proxy protocol
    importpath  import path syntax
    modules     modules, module versions, and more
    module-get  module-aware go get
    module-auth module authentication using go.sum
    module-private module configuration for non-public modules
    packages    package lists and patterns
    testflag    testing flags
    testfunc    testing functions

Use "go help <topic>" for more information about that topic.

go mod

go buildとすると自動的にgo getしてくれるサブコマンド

go mod initで初期化する際に生成されるgo.modファイルに依存関係が書かれている。

require (
    github.com/some/dependency v1.2.3
    github.com/another/dependency/v4 v4.0.0
)

go fmt

標準でコードを整形してくれる機能 エディタの設定で保存時に自動実行されるように設定しておいたりCI時に実行しておくことでコードがきれいに保たれる。

vimでやるなら自分で書いても良さそうだがvim-goあたりを入れておけばだいたい問題ない。

github.com

go test

標準のテストツール。 関連ライブラリ豊富過ぎてちょっと理解が追いついていない感がある。

godoc.org

go test -cover -v でカバレッジを出力することも可能。 我らがjunit形式での出力をサポートするツールもあるのでGitLab runnnerとか使ってブラウザでカバレッジを確認することも容易にできる。

github.com