DRYな備忘録

Don't Repeat Yourself.

Revelでプロジェクトをnewしてみた【Revel】【Golang】

問題

GoのウェブフレームワークRevelをこのサイトで使っています。 これで、 http://otiai10.hatenablog.com/entry/2013/09/29/131902

Revelのプロジェクトゼロから書いたけど、ゼロからやらなくていいっぽい。

revel new hogehogeってコマンドがあるらしい。つかってみるです。

記録

# revelインストール
% go get github.com/robfig/revel/revel

# 自分のプロジェクトディレクトリに移動
% cd $GOPATH/src/github.com/otiai10/

# プロジェクトをnewする
% revel new github.com/otiai10/anisoon
~
~ revel! http://robfig.github.com/revel
~
Your application is ready:
   /Users/otiai10/proj/go/src/github.com/otiai10/anisoon

You can run it with:
   revel run github.com/otiai10/anisoon

# 起動してみる
% revel run github.com/otiai10/anisoon
~
~ revel! http://robfig.github.com/revel
~
INFO  2013/10/19 13:37:32 revel.go:292: Loaded module testrunner
INFO  2013/10/19 13:37:32 revel.go:292: Loaded module static
INFO  2013/10/19 13:37:32 run.go:57: Running anisoon (github.com/otiai10/anisoon) in dev mode
INFO  2013/10/19 13:37:32 harness.go:157: Listening on :9000

で、ブラウザからアクセスすると

f:id:otiai10:20131019134011p:plain

わ、すぐできた。goってgoのインストールからパッケージのインストール(go get)も手軽で好きです。どこに入るかも明示的だし。

調査

% cd $GOPATH/src/github.com/otiai10/anisoon
% tree
.
├── app
│   ├── controllers
│   │   └── app.go # hoge.goにrenameしても動いた
│   │              # つまり、package controllersに属していれば
│   │              # controllerのファイル分割は容易
│   ├── init.go # 各種フィルターの設定が入ってたりした
│   │           # ちゃんと読めば面白そう
│   ├── routes # コンパイル後のルーターっぽい
│   │   └── routes.go
│   ├── tmp # コンパイル後のファイルが入るのかな?
│   │   └── main.go
│   └── views
│       ├── App
│       │   └── Index.html # templateの呼び出しとか確認できる
│       ├── debug.html
│       ├── errors
│       │   ├── 404.html
│       │   └── 500.html
│       ├── flash.html
│       ├── footer.html
│       └── header.html
├── conf
│   ├── app.conf # アプリケーションのdevとかprod起動についての設定
│   └── routes # これを元にルーターがつくられるっぽい
├── messages
│   └── sample.en
├── public
│   ├── css
│   │   └── bootstrap.css # twitterbootstrapがデフォで入ってるんすか...
│   ├── img # glyphiconsはいつもお世話になっております
│   │   ├── favicon.png
│   │   ├── glyphicons-halflings-white.png
│   │   └── glyphicons-halflings.png
│   └── js
│       └── jquery-1.9.1.min.js # jqueryでフォルト
└── tests
    └── apptest.go # webフレームワークでブラウザ経由のテストを提供してる
                  # `/@tests`にアクセスすれば確認できる

14 directories, 20 files

だいたい公式のドキュメントが充実してるので、ちゃんと読もうと思った http://robfig.github.io/revel/index.html

雑感

艦これウィジェットのログサーバ用に既に一つ作ったけど、改めて、良さそう