「お約束」をまとめてみる。
Webアプリケーションを作るにあたって冗長だなーと思う部分をメモ。
あとはLightningが現状苦手としている部分とか。
その辺を解決すれば開発効率も上がるんじゃないかなっと。
認証
BasicとかDigestはどうしてもHTTPサーバーに依存してしまうので、
まずはフォームでの認証(というかログイン)について考える。
フォームからログインし、セッションを張り、セッションIDを得る。
そこを受け持つプラグインを作れればというところ。
ネックはユーザー情報の格納場所の差異を吸収することと、ユーザー権限等不可情報の取扱い。
O/Rマッピング
永続データの読み書きは永遠の課題。
テーブルスキーマをPerlのレイヤーに持ってこないといけないことと、
複数のテーブルにまたがる操作をいかに実装しやすくするか。
その上でパフォーマンスを落とさないこと。
あとバリデーションか。
バリデーションとページ遷移
入力データの妥当性チェックをし、その結果によって表示を振り分けるのが冗長。
バリデーションはモデルの、ページ切り替えはビューの領域だと思うが、
現状モデルとビューの間に必ずActionが挟まってるのが問題。
ビューにテンプレート選択アルゴリズムを実装できるようにして、
モデルを直接assignしてそれを使うっと。
コンフィグ・イニシャライザ
商用・テスト・開発の3環境あるとして、それぞれで設定が違う部分が必ずある(dsnとか)。
一定のルールを設定して、それに応じてマージされたコンフィグデータを返すようにする。
得られたコンフィグを使用して何らかの初期化処理を入れる。
パスレイヤーごとの設定
Actionの階層によって前後のhookその他の設定を適用できるようにする。
Actionコードを遅延ロードするので、Catalystのような感じには書けない。
でも設定だけをコンフィグやイニシャライザに書くのは本末転倒な気がする。
遅延ロードした後にそのActionが属するレイヤーの設定を追加・取得できるような仕組みが必要。
というわけで。
現状こんなもん?
打倒Catalyst。