Goで匿名ダイアリーもどきを作ってみた
完全に趣味ですが、Goに入門しました。 匿名ダイアリーもどきのアプリケーションを作るとこまでできたので、ここまでに学んだことをメモ。 http://golang-jp.org/doc/に十分まとまっていますがね。
作ったアプリ github.com
※環境はOSXです
インストール
brewでさくっと入れました。執筆時点のバージョンは1.7.4.
brew install go
Goは$GOPATHという環境変数でワークスペースを指定します。また、$GOPATH/binにバイナリが配置されますので、.bash_profileに以下を追加。
export GOPATH="$HOME/go" export PATH="$GOPATH/bin:$PATH"
コーディングスタイル
goは公式のスタイルが厳格に決まっていて、gofmtなるフォーマットツールも付属しているらしい。
以下のコマンド一発でフォーマットしてくれるので、git hookとかで強制的にフォーマットするとよさそう。
gofmt -w .
パッケージマネージャ
Goではライブラリはワークスペースにgetしてきたものが使われるんですが、複数のマシンで開発するときはやっぱバージョン固定したいですよね。
パッケージマネージャは色々ありますが、glideかgovendorがナウい感じ? gom, godepなどもあるみたいだけど、後述するEchoではglideとgovendorが紹介されてました。
特に強い理由はないけど、なんとなく今メジャーっぽいというだけでglideを採用。 バージョンをyamlで管理してくれます。
brew install glide glide init glide install glide get github.com/hogehoge/fugafuga
WAF
RubyにおけるRailsのような、とりあえずこれ使おう的なものはまだない印象。そもそも重量級フレームワークとかを使って黒魔術ゴリゴリで書く言語ではなさそう。
- Echo
- Gin
- Revel
など色々あります。開発の活発さとドキュメントの充実具合で、Echoを採用しました。
テンプレートエンジン
「標準のhtml/templateパッケージで十分」とどこかで見かけたので、これしか試してない。
ORM
WAFに同じく、あんまりGoだと使わないのかなー。デファクトスタンダードなものはなさそう。
- gorm
- gorp
などがあり、gormを採用しました。この選択はあまり自信ないです。
テスト
標準のtestingパッケージを使って書けばOK