タグ別アーカイブ: golang

[golang]マグマ大使よりステキなWebフレームワーク「Revel」

タグ: , | 投稿日: 投稿者:

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 にアクセス
ss