DjangoとTurbogears ってsql文を書いたりしなくていいので楽だナァと。djangoだとクラス定義して
$ python manage.py syncdb
ってやればいいし、Turbogearsも同様に
$ tg-admin sql create
でうまくやってくれる。で、そういえばYAPCでJiftyもそんなこと発表してたのを思い出して、大量のモジュールと共にインストールしてみた。
練習用に使ったサンプルはJifty::Manual::Tutorial。ちなみにJiftyのバージョンは0.60912。
最初の流れはCatalystと違って、アプリケーションだけつくれば、ビューとかコントローラー作る必要ないみたい。いきなりモデルをつくりはじめるわけだが、もちろんデータベースの設定はSQL文など書かなくてよくて、
column title => type is 'text', label is 'Title', default is 'Untitled post'; column body => type is 'text', label is 'Content', render_as 'Textarea';
とハッシュっぽく記述しておいて、
jifty schema --setup
これだけ。あとはテンプレートまわりをいじるわけだが、僕の使ったバージョン(0.60912)だとwebではなくshare/web/だった。また、テンプレートシステムにMason利用しているので、実用Perlプログラミングなど読み返しながら。
%でperl式を挿入する場合%は行頭から始めないといけない(間にスペースとかをいれてはいけない)ことを理解していなくてちょっとはまった(下の部分)。
% while (my $post = $posts->next) { <dt><%$post->title%></dt> <dd><%$post->body%></dd> % }
Masonってなんかphpっぽいな。今回Jiftyの触りしかいじってないけど、アプリ作成すると、オンラインドキュメントも一緒に作られるので、これを読むのがなかなか面白い感じ。あとMasonも暇があればなんかで使ってみよう。でもMason使うとビューとコントローラーの切り分けが曖昧になってきちゃうような気がするんだよナァ、、、
あーめんどうだ、テンプレートに直接書いちゃえ!
みたいな(うーん実際はどうなんだろうか)。
というわけで、一通りサンプルを作ってみて、感想を。Jiftyは(RoR,djangoもそうだけど)フルスタックなのでサクサク開発できそうで、なにより使っていて気持ち良い。
Catalystと使い分けできれば生産性は上がるかな。ちょっとしたもの作る場合にはJiftyはいいと思った。