DRYな備忘録

Don't Repeat Yourself.

GoのウェブフレームワークrevelでHelloWorld【revel】【Golang】

goal

  • goをインストール
  • revelをインストール
  • revelで簡単なウェブサーバつくる

f:id:otiai10:20130929131800j:plain

revel 【動詞】 〔…を〕大いに楽しむ,〔…に〕ふける,凝る 〔in〕.

log

goをインストール

mercurialが必要っぽい

sudo apt-get install mercurial

さきにPATH通しとく

# {{{ GO
export GOROOT=$HOME/go # goコマンドへのパス/bin (exportせずとも、PATHへのバインドさえすれば良い気もする) る)
export GOPATH=$HOME/go/package # go get でインストールしてくるパッケージへのパス?
# こっちはgo getするときに参照されるので、exportする必要有り
# }}}

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

ソースからgoをインストール

wget wget https://go.googlecode.com/files/go1.1.2.linux-386.tar.gz
tar -xzf go1.1.2.linux-386.tar.gz
cd go/src
./all.bash
# ...中略
ALL TESTS PASSED

---
Installed Go for linux/386 in /home/otiai10/go
Installed commands in /home/otiai10/go/bin

revelをインストール

revelとは? http://robfig.github.io/revel/

Revel - A high-productivity web framework for the Go language.

goにはgo getというコマンドがあるカッコイイ

go get github.com/robfig/revel/revel

$GOPATH/bin/にrevelコマンドがインストールされた

revelで簡単なウェブサーバつくる

$GOPATH/src/github.com/robfig/revel/samples/にrevelのサンプルが自動的にインストールされてる。でも綺麗につくっちゃってくれてるので、最小限の挙動がワカンネ。なので、サンプルを読みつつ、最小限のサーバ作ってみるです。

cd $GOPATH/src
# $GOPATH/src以下に置かないとrevel runで起動できないっぽい
mkdir minimum.revel
cd minimum.revel
mkdir conf
# サーバの設定やルーティング定義を書いておくディレクトリ
# ルーティングがここで簡潔に書けるのがrevelのかっこいいところのひとつらしい
vi conf/app.conf
# サーバ名やポート、起動時のデーモン設定やログ設定などするっぽい
vi conf/routes
# ルーティングを書く 

mkdir app
# アプリケーションなものを書いておくディレクトリ
mkdir app/controllers
vi app/controllers/app.go
# コントローラ
mkdir app/views
mkdir app/views/Application
vi app/views/Application/Index.html
# ビュー

全ソースはここ https://github.com/otiai10/minimum.revel

で、実行

revel run minimum.revel

ブラウザで見てみると...

f:id:otiai10:20130929131231p:plain

やったー

雑感

よさそう

samplesの中のいろいろ読んで勉強しつつ充実させていくです

DRY