キュアセブン技術ブログ

考えたこと,学んだことを書きます

Go言語勉強会(1)

今日初めてGoを触りました.

貸してもらった本がはてなの@songmuさんの本でニヤニヤした.Goは初なので環境構築とチュートリアルが今日の目標です.@mattnさんもいてハッピー.そのあと購入しました.

 環境構築

$GOROOT

 Goのインストールパス.$ go env GOROOTで取得.

私のは/usr/local/Cellar/go/1.9/libexec

 

$GOPATH

Goのワークスペース$HOME/devにした.

$HOME/dev/binには色々go getしてきたものたちが入っているb

go get で gore 入れた.

motemenさんはてなインターンJSONのschemaとサンプルコードあげてた人のパッケージ

go getはソースコードリポジトリをそのまま参照する.git cloneの感覚.

 

$ gore -autoimport

REPL.

終了はctrl+D

 

ghq

$GOPATH管理.インストールしたのでghq listでディレクトリ上のリポジトリ一覧取得できる.ghq getでリポジトリ取得できる.

 

ghq get と go getの違いはなんだ?

ghqはツール,go getはgoのリポジトリを管理するもの.ghqはgoに限ったツールではない.

 

peco

リポジトリ間の移動を簡単に行う

 

開発支援用のツール

$go get golang.org/x/tools/cmd/...

したのでまとめてインストールできた.

 

gofmt

インデントはタブ.まだコードを書いていないので後で試す.

gofmt -w main.go

 

goimports

gofmtの機能+使ってないけど宣言したパッケージを自動で削除

ただし重いので使い分け必要.早いのはdragon-imports

 

lint

コードの解析をして指摘してくれる.バグが発生しそうなところ指摘するのがgo vet,

Goらしくない書き方を指摘するのがgolint.なにそれ天才..

go vetの警告は必ず直したほうがいい.そりゃそうね.合間合間にgo vetとgolintは実行したほうが良い.golintの厳しさ設定を$ golint -min_confidence=0.5 ./...で変えられる.デフォルトは0.8で小さくするほど厳しい.

 

godoc

$godoc hogehogeパッケージのドキュメントが観れる.fmtとか.

$godoc $(ghq list |peco)|less

 

慣れてきたら使ってもいいかもしれないもの

  • gorename
  • guru
  • gocode
  • godef
  • gotags

一応全部入れておいたよ

 

環境構築終了.

 

チュートリアル

https://tour.gorang.org

 を進めていくぞ.

やや頑張ってドキュメントよも(気が向いたら)

Documentation - The Go Programming Language

 

github.com

今日はhello,worldまでできた.hello.rbとしたけどhello/main.rbとしても綺麗だった.まあこれくらいならhello.rbでいいんだけど.訂正した.

なんか間違っていることがあればコメントお願いします.