Posted at

俺俺Mojoliciousベストプラクティス

More than 5 years have passed since last update.

メリークリスマース !!本日でいよいよ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が終わります!!

以下の写真は一人でチキンの丸焼きをつくった様子です。本エントリーの内容との相関はございません。