Debuginfo

思考とアウトプット

Web Application Framework (WAF) を選び階層構造を決める。

PerlのWAFは結構色々選択肢がある。Catalyst, Dancer, 和製のAmonとか。去年初めてWAFに触れたのがMojolicious::LiteなのでSyntaxも知ってるし、採用しました。今回はlite_appでないものを書くつもりですが。Catalystは使った事ないけど(会社のプロジェクトで使いそう...)Module間のdependencyがすごいらしい。

Mojoliciousのアプリケーションを作るには下記コマンドを使ってひな形を作る。(サービス名は決まっていませんが、Crossinという仮の名前を使う。最悪、sedで後で全変更する)

$ mojo generate app Crossin

MojoliciousではModelをどうやって書くかの指針がない。私の理解ではModelの自由度をユーザ側に委ねているのだと思う。したがって、自分で決めなければいけない。色々なページを参考に今回のプロジェクトで使用する階層は下記にする。

$ find lib/
lib
lib/Crossin
lib/Crossin/Controller
lib/Crossin/Controller/Example.pm
lib/Crossin/DB
lib/Crossin/DB.pm
lib/Crossin/API
lib/Crossin/API/Login.pm
lib/Crossin/Model.pm
lib/Crossin.pm

少し解説しておくと、Model.pmはFactory的な使い方で各APIを呼び出す。DB*はDBIx::Skinnyで利用する。Crontollerは階層を分けた方がよさそうなので、ディレクトリを作成後に下記をCrossin.pmに記述。

$ vi lib/Crossim.pm
# To move the namespace of controller
$r->namespace(‘Crossin::Controller’);