2010年5月22日土曜日

初書評「PerlフレームワークCatalyst完全入門」

知り合いのインプレスジャパン編集者に「実はPerlのプログラマなんですよ」って話をしたら、その方が編集を担当した新刊「PerlフレームワークCatalyst完全入門」を贈呈いただいた。「ぜひブログで紹介してください」ということなので、ダンコガーイな気分で書評をしてみたいと思う。

最初に告白しておくと、実はPerlのフレームワークは使ったことがない。検証目的でSledgeをインストールしたことがあるが、業務ではZendやSymfonyなどPHP用が中心だし、今度の開発案件はJavaが必須なのでPerlの出番はない。しかしPerlは私の母国語なので、まるごとPerl(インプレス刊)など参考書籍を見つけると購入してしまう

だいぶ前置きが長くなったので、本書の書評に入ろう。タイトルが体を表しているように、本書はPerlのフレームワークCatalystの解説書である。まずは目次から。

Chapter1 イントロダクション~Catalystの全体像と開発の準備~

  1. Catalystというフレームワーク
  2. Catalystを利用するための環境設定

Chapter2 Catalystの基本~MVC開発とScaffolding機能の活用~

  1. スケルトンの作成
  2. コントローラの基本
  3. ビューの基本
  4. モデルの基本
  5. アプリケーションクラス

Chapter3 コンテキストオブジェクト~HTTPリクエスト/レスポンスの操作~

  1. リクエストオブジェクト/Catalyst::Request
  2. レスポンスオブジェクト/Catalyst::Response
  3. HTTPステータスを設定する/statusメソッド
  4. コンテキストオブジェクトのその他のメソッド

Chapter4 ビュー開発~テンプレートエンジンTemplate Toolkit~

  1. テンプレートファイルの構成要素
  2. 変数
  3. ディレクティブ(命令)
  4. フィルタ
  5. 仮想メソッド
  6. プラグイン
  7. 設定パラメータ
  8. 出力のJSON対応/Catalyst::View::JSON

Chapter5 モデル開発~O/Rマッパーとデータベース連携~

  1. データ取得の基本/findメソッド
  2. より複雑な条件での検索/searchメソッド
  3. ResultSetクラスのその他のメソッド
  4. レコードの登録/更新/削除
  5. 複数テーブルをまたがる処理
  6. データベース連携のその他の話題

Chapter6 コントローラ開発~ディスパッチとリクエストフローの制御~

  1. 属性
  2. 連鎖アクションを定義する/Chained属性
  3. 組み込みアクション
  4. リクエストフローの制御
  5. ロールによる処理の割り込み/Catalyst::Controller::ActionRole

Chapter7 プラグイン~セッション管理から認証、キャッシュ操作まで~

  1. セッション機能を利用する/Catalyst::Plugin::Session
  2. フォーム認証を実装する/Catalyst::Plugin::Authentication
  3. ユーザ入力の検証機能を実装する/Catalyst::Plugin::FormValidator::Simple
  4. アプリケーションにキャッシュ機能を実装する/Catalyst::Plugin::Cache
  5. 国際化対応のサイトを構築したい/Catalyst::Plugin::I18N
  6. 各種形式の設定ファイルを利用する/Catalyst::Plugin::ConfigLoader

Chapter8 単体テスト~Test::*とCatalyst::Test~

  1. 単体テストの基本/Test::More&Test::Harness
  2. Test::Moreの基本
  3. コントローラクラスのテスト/Catalyst::Test
  4. Test::More/Catalyst::Test以外のテストモジュール
  5. 補足:Catalyst::Model::Adaptorとコントローラクラスの単体テスト

山田祥寛氏にはPEAR入門Smarty入門といったPHPの解説書のイメージがあったので、Perlの解説書はちょっと意外だったけど、基礎 Perlというのも出していたんですね。知らなかった。

本書を紐解いていく。MVCやフレームワーク/PerlやMySQLのインストール方法といったイントロ部分は非常にシンプルだ。この手の本って前置きに必要以上のページを使うことが多いけど、本書にはそういう無駄がない。

さらに読み解いていく。スケルトン(枠組み)の役割や作り方がHTTPの流れと共に丁重に解説されているので、実際に手を動かさなくても内容がどんどん頭に入っていく。HTTPを理解しないと気持ちが悪い私によっては大変ありがたい。Catalystでは、ViewにTT(Template Toolkit)を使っているが、本書ではCatalystでTTを使う点を考慮した細かい配慮が施されている。Modelに関しては、私は今までSQLが使えない特殊なDBで開発することが多かったのでORマッパーを使ったことがないが、本書はすらすらと読むことができた。その他、アクションやテストに関しても、Catalystならではのポイントを明確に説明している。

これからCatalystを使おうとする人や現在利用中の人が想定読者層だと思うが、本書はPerl臭さが非常に少ないので、他言語のフレームワークを使った経験がある人なら十分理解できるだろう。プログラミング言語にも言えることだが、自分が使っている道具を深く知りたいのなら、他の道具への勉強を怠るべきではない。そういった点では、中途半端な初心者向けのフレークワーク解説書を読むより本書を熟読することをオススメする。

外国語を知らない人は自国語についても無知である。(ゲーテ)

0 件のコメント:

コメントを投稿