メリークリスマース !!本日でいよいよMojolicious Advent Calendarも終わりですね。本日のネタは最終日に相応しいはどうかは置いといて僕がつくってるWebアプリでのMojoliciousにまつわるTipsとか考えを箇条書きで列挙してみます。サクっといってみよー!
- plackup / Starman で立ち上げることを前提にしている
- Starlet だといきなり本番環境で詰まることがあって原因探りたい
- Placke::Middleware::* を使えることも考慮して
.psgi
ファイルを最初につくる - セッションはもう
Plack::Middleware::Session::Simple
使ってアプリ内でゴニョればいいかな〜 -
Mojoliciousモジュール
に同封されてない MojoX::* とか Mojolicious::Plugin::* は使わない - Mojolicious本体のバージョンアップが早いので追従出来てない可能性があるから
- それと同様にドキュメントは本体のPODを読むのみ、大抵それで解決する
- Hookの中では
before_dispatch
after_dispatch
はよく使います - Helperは生やしすぎない程度に便利なメソッドを追加する
- テンプレートは
Mojo::Template
を利用 - Perlが書けるので現状の開発スタイルに合っている
- 見た目に関すること(条件によるタブの切り替えとか...)はテンプレ内に書いちゃう
- モデルをロードする時にCatalystライクに
$self->model('Entry')->create(...)
と呼び出せるローダをつくる - 本番環境にも
./log
ディレクトリ掘っておくとproduction.log
とか出来るのでそれ見てる - Mojoliciousのログ使わないで
warn Dump $ref
とかやったりするがアリかと... - Routingで
get/post
使うと正しくRouteオブジェクト取れないことある - なので
$r->route('/')->via('GET')->('root#index');
とするケースも... - MojoliciousはRoutingが柔軟、Controllerでやるべきことがシンプル、テンプレートでPerlが比較的安全に使える
- これが特徴かな〜
- そもそもMojoliciousは 変な挙動をしない から良いしあんまソース追わなくていい
- その他語りたいことは他のMojolicious Advent Calendarの記事に書きました!
ってことで来年あるかどうか、僕がMojoliciousを使っているかは不明ですが、以上Mojolicious Advent Calendar 2013が終わります!!
以下の写真は一人でチキンの丸焼きをつくった様子です。本エントリーの内容との相関はございません。