Edited at

Go・Revelのセットアップ

More than 3 years have passed since last update.


0. はじめに

最近、Go言語を使って開発を始めたので、インストールなどの方法をまとめてみました。WEBフレームワークとしてRevelを選んでみました。


内容


  • Go言語のインストールと動作確認

  • GoのWEBフレームワークであるRevelのインストールと動作確認

  • vimの設定(おまけ)


想定読者


  • Go言語初心者

  • 他の言語、フレームワークでの開発経験あり


1. Goのインストールと動作確認


インストール

Homebrewを使っている場合、コマンドラインで、

$ brew install go

でインストールできます。


動作確認

インストールし終わったらホームディレクトリ等で hello.go というファイルを作成し以下のように記述。


hello.go

package main

import "fmt"

func main(){
fmt.Printf("Hello, world\n")
}


コマンドラインで以下のように打ってHello, worldが表示されればOK。

$ go run hello.go

# Hello, world


参考になる記事

http://qiita.com/megu_ma/items/7208be8de52b712955a0


2. GOPATHを指定


GOPATHとは

Goのソースコードや実行可能ファイルなどを保存するためのディレクトリをGOPATHという環境変数として指定する必要がある。

僕はとりあえずホームディレクトリ配下に置いていて、現在のところ問題は起きてないです。


設定

zshを仕様している場合~/.zshrcに以下のように記述する。

$ export GOPATH=$HOME/.go

$ export PATH="$PATH:$GOPATH/bin"

とした後にコマンドラインで、

$ source ~/.zshrc

でこの設定を読み込む。


参考になるQiitaの記事

http://qiita.com/yuku_t/items/c7ab1b1519825cc2c06f


3. Revelのインストールと動作確認

ここからは実際にGo言語でアプリケーションを作る準備をしていきます。RevelはGo言語のWEBフレームワークです。


Revelのインストール

コマンドラインで、

$ go get github.com/revel/revel

と打つと、Revelをインストールできます。インストールし終わったらコマンドラインで、

$ revel

と打って、以下のように表示されたら成功。

~

~ revel! http://revel.github.io
~

# ...


サンプルアプリの作成

アプリを以下のコマンドで作る。

$ revel new test_app


ディレクトリ設定

上記のコマンドをどこで打っても、作成されたアプリはGOPATH以下のsrcディレクトリ配下に作られる。

自分の好きなディレクトリで操作したいのであれば、以下のコマンドで好きなディレクトリにソフトリンクする。

http://www.zontheworld.com/linux/ln.html

$ ln -s GOPATH/src/test_app your_dir


サーバーの立ち上げ

設定したディレクトリで、

$ revel run tes_app

としてサーバーを立ち上げ、

localhost:9000

にアクセス。

It works!と出ていれば成功。


4. エディタ(vim)の設定

Go言語では、インデントはスペースではなくタブを使うことを推奨しており、エディタの設定が必須です。

僕は業務ではエディタとしてvimを使っているので、vimの設定について書きます。


NeoBundle

vimの設定は色々と方法がありますが、僕は結局、NeoBundleを使って'vim-go'をインストールして使いました。

NeoBundleの導入としては以下の記事が参考になります。

http://qiita.com/himinato/items/caf5a0b19ce893a75363


設定

vimに以下のように記述しました。NeoBundleに関するコードは割愛。

NeoBundle 'fatih/vim-go'

# NeoBundleに関するコード

exe "set rtp+=".globpath($GOPATH, "src/github.com/nsf/gocode/vim")

let g:go_highlight_functions = 1
let g:go_highlight_methods = 1
let g:go_highlight_structs = 1
let g:go_highlight_operators = 1
let g:go_highlight_build_constraints = 1

以上です。おつかれさまでしたー。