※このドキュメントは、Go速習会で、事前にGolangを動かせる環境を用意してもらうために書いたものです。
ここでやること
- Goのインストール
- GOPATHの設定
- エディタ(Atom)の設定
- とりあえず
"Hello world!"
が出来るか確認 - もっと準備したい人のための情報
Goのインストール
に各OS用のインストール方法がまとまってます。
Macなら、Homebrewを使い、
brew install go
でいけます。
GOPATHの設定
Goを使うためには、GOPATHを設定する必要があります。ほぼ必須です。
ここにimportする外部のライブラリが入りますし、僕はこのGOPATH以下で開発しています。
GOPATH以下のディレクトリ構成
GOPATHをどこにするか決める上でも、GOPATH以下に作成されるディレクトリ構成を知っておくと良いです。
GOPATH=/home/user/gocode
>
/home/user/gocode/
src/
foo/
bar/ (go code in package bar)
x.go
quux/ (go code in package main)
y.go
bin/
quux (installed command)
pkg/
linux_amd64/
foo/
bar.a (installed package object)
GOPATHは何処がいいか
大きく以下2つの選択肢があり、それぞれメリット・デメリットあります。
- ルートディレクトリ
GOPATH=~
- home以下のgoディレクトリ
GOPATH=~/go
- ディレクトリ名としては、
go
,.go
,gocode
が主流
これからはじめる人は、既存のディレクトリ構造の移行とか諸々面倒だと思うので、2でgo
でやることをオススメします。
gocode
は本家の例でいくつか使われていますが、個人的には長い必要がないと思います。.go
は自分のコードの開発をこのディレクトリ以下でやらない派の人にはいいかもしれません。
ちなみに、自分はパソコンを買い変えたタイミングで1の設定で運用しています。
そうすると自分がいじるすべての言語のコードを置く場所が~/src/github.com/<ユーザー名>/<レポジトリ名>
になるので迷いがなくなるし、
レポジトリを移動するコマンドcrや、go以外のコードもgo get
の用に取ってくるコマンドghqを使うことで全言語のソースコード管理が楽になります。
デメリットとして、goimports
が遅くなりますが、まぁgofmt
があるし、goimports
あんまり使わないという手があるのであまり困っていないです。
環境変数への設定方法
.bash_profile
, .zshenv
に
export GOPATH=/Users/your-user-name/go # GOPATHにすると決めた場所
export PATH=$GOPATH/bin:$PATH
と設定します。
エディタの設定 - Atom
ここでは、Atomでやる場合を解説します。
go-plus のパッケージを入れましょう。以下の機能がまとめて入ります。
- コード補完 (gocode)
- コード整形 (goformats, goimports)
- 静的エラー解析 (golint, go vet)
- ビルドとテスト (go build, go test)
あとは、Settingsに行って、GOPATHとか必要な設定をすると良いです。
これだけで基本は十分なはずです。
簡単なコードが動くか確認
どこかのディレクトリにmain.go
を作って、
package main
import "fmt"
func main() {
fmt.Println("Hello world!")
}
と書いて保存します。
$ go run main.go
Hello world!
と出力されればOKです。
おまけ
公式サイトでの導入
普通、公式のドキュメントを読んでGoをはじめようと思ったら以下のドキュメントを読むはずです。
ここで書いたことや、テストをどう書くかまでまとまっているので目を通しておくと良いかもしれません。
基本文法を知るには
速習会では、APIサーバーを作るのをゴールにするため、基本的な文法(if文や、ループの仕方や構造体どう作るのか等)は使ったタイミングで軽く触れる以上のことはしないつもりです。
これを知るには、以下のTour of Goというのがその場で実行できるSandbox付きでめちゃくちゃ良いので、"Basics"の部分までで良いので事前に見ておくことをおすすめします。ただやるのは必須ではないです。