norです。
今日はマグマ大使(Peeping Life バージョン)よりステキなWebフレームワーク
Revel
を紹介します。
Revel は Java/Scala 界隈で絶大な人気を誇る Play Framework を参考に開発されたWeb Application Framework です。
Play Frameworkのいいところどりをしつつ、golangの洗練された非同期処理機構によりコールバックという野蛮な押し込み強盗から身を守ることができます。
簡単にいいところを紹介しますと。
- ソースコード変更自動検知による、ホットコードリロード
- ノンブロッキング Web サーバ
- フルスタック Web フレームワーク
- ハイパフォーマンス
- ステートレス
- 非常に簡単な
- golangで実装されている、golangで実装されている
という特徴をもっています。
特に、 Twisted や Tornado(Python)、EventMachine や Rev(Ruby)が好きな方、苦労したことがある方にはお勧めです。
golang でのノンブロッキングの実装の簡単さを経験すると、「君のサービス、サーバ何台で動かしてる? 僕ならきっと5分の1にできるよ(フフン」なんてブラックジャックも真っ青な勘違いをはじめてしまうほどアガります。
Erlang とか Huskell でごりごりサービス組み上げられちゃうような変人も箸休めにどぞ。
※ nor は Erlang に片目をささげるほどの信者ですので、誤解のないよう
さて、golang への愛を語るのはこの程度にしまして、第1回ということで、今回は golang のセットアップから Revel で Web ページ表示までしてみたいと思います。
インストール
GOPATHの設定
mkdir ~/gocode echo 'export GOPATH="$HOME/gocode"' >> ~/.zshenv source ~/.zshenv
golang のインストール(マカー以外は知りません)
brew install go
Revel のインストール
go get github.com/robfig/revel
Revel のビルド。
go get github.com/robfig/revel/revel
$GOPATH/bin以下にコマンドがビルドされているので、PATHを通す。
echo 'export PATH=$PATH:$GOPATH/bin' >> ~/.zshenv source ~/.zshenv
Revel アプリケーションの作成
cd gocode revel new my app
~ ~ revel! http://robfig.github.com/revel ~ Your application is ready: /Users/nor/gocode/src/myapp You can run it with: revel run myapp
Revel アプリケーションの実行
revel run myapp
http://localhost:9000 にアクセス