お久しぶりです、Perl担当の西山です。
前回に続きDRY(Don't Repeat Yourself)を追求するWebフレームワークJiftyを取り上げます。
手元の環境にPerlの実行環境やJiftyをインストールされていない方はこれまでの記事を参照してください。
今回はJiftyと一緒に配布されている"ShrinkURL"というサンプルアプリケーションを題材に、
Jiftyに従ってアプリケーションを開発する場合のモジュール構造や考え方を見ていきたいと思います。
これまでの記事:
- JiftyでWebアプリをつくる - Windowsにインストール
- JiftyでWebアプリをつくる - ログイン機能を作る
Jiftyの考え方
一般的にWebアプリケーションのフレームワークなどで使用されるアプリケーション構造はMVC(Model-View-Controller)と呼ばれる形に機能は分類されますが、
Jiftyでは本家サイトの
Basic concepts of Jiftyで説明されているように「Dispatcher」「Action]
「Template」「Model」という4つの要素でアプリケーションを構成しています。
それぞれの要素は主に以下のような役割で開発するように設計されています。
- Dispatcher: URLに対してActionやTemplateへのマッピングを定義。
- Action: 画面内での操作やリクエストなどをトリガーに発生するビジネスロジックを定義。
- Template: 表示系のデータ取得処理や、UIのレイアウト情報を定義。
- Model: 操作対象となるデータモデルの構造や操作を定義。
通常のMVCではControllerでまとめて扱われることの多いDispatcherとActionの役割を、Jiftyではフレームワークレベルで明確に分けています。
また、表示系の処理もViewが使用するhtmlテンプレートやControllerに分散しやすいですが、JiftyではTemplateのPerlモジュール内で一括管理するように設計されているのが特徴だと思います。
サンプルアプリShrinkURLを見る
新しいモジュールやフレームワークの使い方を理解するには
サンプルをてっとり早く動かしてみていろいろいじってみるのが早いと思います。
サンプルアプリケーションであるShrinkURLを見てみましょう。
セットアップ
先ほどサンプルはJiftyと一緒に配布されていると書きましたが、
Windows版のPPMには含まれていないようです。
TortoiseSVNなどのSubversionクライアントをインストールしている方は下記レポジトリから、
チェックアウトしてください。
http://svn.jifty.org/svn/jifty.org/jifty/trunk/examples/ShrinkURL
ブラウザ経由でもCPANのJiftyのページからダウンロードできます。
解凍後のフォルダのexamples\ShrinkURLが今回使用するアプリケーションフォルダです。
適当な作業フォルダにShrinkURLをコピーしてください。
また、ShrinkURLが依存するモジュールとしてNumber::RecordLocatorが必要になります。
別途Package Managerを使ってインストールしてください。
最後に、以下のようにコマンドプロンプトから
ShrinkURLフォルダ配下でコマンドを実行するとセットアップ完了です。
C:\tmp\ShrinkURL>perl bin\jifty schema --setup
動作確認
まずは素の状態の動作を見てみます。
以下のようにjiftyコマンドにserverオプションを指定して実行するとアプリケーションサーバが起動し、
デフォルトでは
http://localhost:8888/のURLで
アクセスできるようになります。
C:\tmp\ShrinkURL>perl bin\jifty server
ShrinkURLは、入力されたURLにユニークなキーを割り当て、短縮したURLでサイトにアクセスできるようにするアプリケーションです。
登録したURLはDBに登録され、短縮したURLはいつでも利用することができます。
1.URLを入力してShrink it!ボタンをクリック
2.短縮したURLが生成される
生成されたURLにブラウザからアクセスすると、元の入力したURLへリダイレクトされます。
最近のコメント
eil on lightboxをカスタマイズしてみよう(中編)- 角丸対応ライブラリとCanvas: 上のコメントと同じで
エイミイ on lightboxをカスタマイズしてみよう(中編)- 角丸対応ライブラリとCanvas: Lightview導
bokutin on JiftyでWebアプリをつくる - ログイン機能を作る: おいしそうなJift
yattokoSattoko on JiftyでWebアプリをつくる - Windowsにインストール: 貴重なご指導感謝しま
junya on Ruby on Rails を使ってひとりでサービスを作ってみよう: Ubuntu なかな
ryu on Ruby on Rails を使ってひとりでサービスを作ってみよう: おや、マジでUbun
junya on Ruby on Rails を使ってひとりでサービスを作ってみよう: yuki さん、 コ
yuki on Ruby on Rails を使ってひとりでサービスを作ってみよう: 「Getting R