2010年10月3日日曜日

CakePHPとCatalyst

日々日々、
なんらかのWeb Application Framework (WAF)つかっているわけですが、
なんとなくCakePHPかCatalyst使うことが一番多いので、
言語すら違うのに比較した所感を。


まず、それぞれの概要から。


■Catalyst  - Perl


PerlのWAF代表格ですね。


http://www.catalystframework.org/


非常に柔軟な特性を持ち、カスタマイズが簡単です。
その名の通り触媒なので、設定というか一緒に使うモジュールの組み合わせで、
ありがちな処理の殆どを吸収してくれます。
専用モジュールがCPANにガスガスあがっているのが素敵


■CakePHP  - PHP


PHP版Ruby on railsですね。


http://cakephp.org/


ActiveRecordパターンという縛りを設けることで、
コーディング量を極端にへらしてくれます。


ドキュメントの豊富さが際立っている気がしますね。


とにかく楽したいときに最高です。


 


で、それぞれ仕事・プライベートで使ってますが、
なんとなく、思うところがあったり。


どちらも似たようなWAFなんですが。


一番大きく違うのは、DB関連というかModelの解釈ですかね。


CatalystはModel用ORマッパーが交換可能です。
好きなORマッパーを当て込めます。
なおかつ、ModelクラスごとにORマッパー変えられたりもします。


これがあるから、アプリレベルでのDBシェーディングなんかも表層で気を使わないですむような実装が簡単にできたり。
コアモジュールをガシガシOverrideとかしないでいいです。


CakePHPはオリジナルのORマッパーしか使えません。
でも、そのかわりにそのORマッパーのルールに従う限りめちゃくちゃ簡単です。
コード量アホかってくらい短くすみます。
なおかつなかなか直感的に使えるAPIを持っているので、
個人的にはソース綺麗になるなーなんて思っています。


Catalyst使ってもごちゃごちゃするのは自分のウデのせいですけどね。


Scaffordとか綺麗だしCakeは手抜き大好きプログラマの味方です。
Catalystはなんでも使える魔法の触媒ですが、柔軟すぎてその分コードが少し増えます。


でもCPANにある無数のモジュールを使えるので、
将来的にめんどくさい(自分で実装したくない)処理が求められそうなときは、こっちがいいかなと思います。


あと、R&D的な何するのかよく分からない自分用アプリ書くときはこれ使ってます。


毎回、アプリ作るときにどのWAF使うか悩みます。
先に言語決めろよという気もしますが。


今更だけどRailsとかも一回ちゃんと使ってみたいですね。


最近はもっぱらKohanaなんですが、
CatalystやCakeなどの歴史あるフレームワークは機能いっぱいで便利ですね。


使いどころと使い方しだいということでしょうか。 



0 件のコメント:

コメントを投稿