λ沢.dev

lambdasawa.dev


Project maintained by lambdasawa Hosted on GitHub Pages — Theme by mattgraham

golang

best practice

init

mkdir foo
cd foo

go mod init $(basename $PWD)

cat <<EOF > main.go
package main

func main() { println("Hello, world!") }
EOF

go run main.go

total coverage

パッケージ全体のカバレッジを計測するコマンド。 普通にやると個別のパッケージごとのカバレッジしか表示されない。

go test ./... -cover -coverpkg=./... | grep -v 'no test files' | sed -E 's/.*coverage: (.+)%.*/\\1/' | jq -s 'add'

render dependency graph

パッケージ間の依存関係を有向グラフの画像にするコマンド。

godepgraph -p $(cat go.sum | awk '{print $1}' | sort -u | paste -s -d, -) -novendor -s $(go list) | dot -Tpng -o godepgraph.png

lib