2009年02月09日 00:00 [Edit]

$job->done('well'); # 書評 - モダンPerl入門

翔泳社再帰、じゃなかった斎木様より献本御礼。

初出2009.02.03; 発売開始まで更新
モダンPerl入門とどいた - D-6 [相変わらず根無し]
「モダンPerl入門」が届きました。翔泳社様、ありがとうございます><

うちにも届いたので早速拝見。

これほどの出来だとは! DMAKI++

あ…ありのまま 今 読んだ事を話すぜ!


本書「モダンPerl入門」を一言で言うと、「Perl Cookbook」と「Perl Best Practice」と「Advanced Perl Programming」と「ミニマルPerl」のエッセンスを取り出し、そしてそれを最新の「モード」へと昇華した一冊。間違いなく、中級者向けPerl本の現時点におけるベストだ。

その実力は、目次からも伺い知ることが出来る。

目次 - 来月、「モダンPerl入門」を発売します (CodeZine編集部ブログ)より
第1章 近代的なオブジェクト指向
1.1 Perlオブジェクト
1.2 Class::Accessor::Fast
1.3 blessからMoose へ
1.4 オブジェクトのロール
1.5 Mooseの問題点
1.6 まとめ
第2章 Perl によるオブジェクトデザインパターン
2.1 Bridge
2.2 Chain Of Responsibility
2.3 Composite
2.4 Factory
2.5 Flyweight
2.6 Iterator
2.7 Mediator
2.8 Observer
2.9 Prototype
2.10 Singleton
2.11 State
2.12 Strategy
2.13 Visitor
2.14 まとめ
第3章 データベース処理の薦め
3.1 DBI
3.2 SQL 文の生成
3.3 データベースをオブジェクト操作で制御する
3.4 DBIかDBIx::Class(ORM)か
3.5 まとめ
第4章 Web アプリケーション
4.1 WAFの選択
4.2 Catalyst 概要
4.3 Catalyst 今昔
4.4 効果的なModelの書き方
4.5 Catalystアプリケーションのファイルレイアウト
4.6 Catalystのテスト
4.7 Webアプリケーションの入れ替え
4.8 まとめ
第5章 Perl によるシステムツールの開発
5.1 Perlワンライナー
5.2 外部コマンドの実行
5.3 コマンドラインツール
5.4 シグナル処理
5.5 fork()
5.6 まとめ
第6章 テストの薦め
6.1 Perlとテスト
6.2 テストの書き方
6.3 Apacheとテスト
6.4 Perlテスト開発:ケーススタディ
6.5 Testツールあれこれ
第7章 パフォーマンスチューニング
7.1 最適化の基本ステップ
7.2 データベース操作の最適化
7.3 最適化のポイント
7.4 コードレベルの最適化
7.5 まとめ
第8章 知っておきたいC API とXS の書き方
8.1 C APIとXS
8.2 XSファイルを使用したディストリビューションの書き方
8.3 XSファイルからコンパイルまでの処理
8.4 基本的な構造体
8.5 typemapの役割
8.6 MAGIC 構造体
8.7 C構造体の格納方法
8.8 Perl関数の呼び出し
8.9 ガーベッジコレクション
8.10 既存のCライブラリへのバインディング
8.11 XSまとめと注意点
第9章 押さえておきたいPerl の基礎
9.1 CPAN
9.2 CPANからダウンロードしたディストリビューションの処理
9.3 CPAN形式での開発
9.4 CPANモジュールの見分け方
9.5 中級者が押さえておきたい基礎
9.6 Windows 環境でのPerlの準備

見てのとおり、Moose や Catalyst といった、WebのPerl界隈で交わされている派手な話題だけではなく、コマンドラインツール、テスト、チューニングといった地味で欠かせない話題もきちんと網羅している。

特にうれしいのは第8章のXSで、これは今まで本で学びたくても学べなかった話題。「ヒョウ本」こと Advanced Perl Programning の第一版では少し扱っていたのだが、第二版になってややスルー気味にされていたこの話題が、再び本で学べるようになった意義は大きい。

これで、3,000円を切るのである。これが日本の Perl Mongers にとっての福音でなくてなんだろうか。いや、これを日本人だけに読ませるのはあまりに惜しい。マヂに英語化を検討するべきである。なんともラッキーなことに、著者は英語も堪能、というより英語の方が堪能である。

もちろんつっこみたいところがないわけでもない。POEやCoroも取り上げて欲しかったし、このイディオムはどうよ、というのもある。しかしそれは私にとってえくぼにしか見えないあばた。本書は読了して完結する本ではなく、使っていくうちにさらに愛着が湧くタイプの本なのである。

いやあ、ひさしぶりにPerlへの愛を再確認させてもらった。上司にするなら Python、同僚にするなら Ruby、部下にするなら JavaScript といった昨今だが、やはり女房は Perl に限るZE!

Dan the Perl Monger

P.S. 早速だけど誤植を一つ見つけたので報告。

P. 150
$SIG{INT{ = sub {
  unlink $tmpfile;
  exit 1;
};

は、明らかに

$SIG{INT} = sub {
  unlink $tmpfile;
  exit 1;
};

ですね。PODで書いたそうだけど、verbatimセクションの文法チェックだけかけるモジュールを用意しておけばよかったかも[あとで書くかも。いや、もうあるかな]。


この記事へのトラックバックURL

この記事へのトラックバック
オライリー矢野様より献本御礼。同封のTシャツもXXLでうれしい。 asin:4844323644 初めてのPerl 第5版 Randal L. Schwartz / Tom Phoenix / brian d foy/ 近藤嘉雪訳 [原著:Learning Perl, 5th ed.] こういうのを見ると、やはりプログラマーにはオライリーと...
BEGIN{ require Llama } #書評_ - 初めてのPerl【404 Blog Not Found】at 2009年10月20日 21:35
モダンPerl入門 牧大輔 「モダンPerl入門」発売記念ということで、同書を補足するentryを。
perl - open my $fh, "comand |"; # はモダンじゃない【404 Blog Not Found】at 2009年02月10日 00:58
書評リンク - モダンPerl入門
モダンPerl入門【書評リンク】at 2009年02月03日 20:37
この記事へのコメント
>初心者なので何故下記の様に言えるのか、
>例えばPythonはどういった所が上司っぽいのか
>いつでもいいのでお手数ですが
>それぞれの特徴を教えて頂けないでしょうか

たいした理由はありません。
ただの主観です。
それでいいのです。
Posted by takahashi at 2009年02月06日 01:15
記事と関係なくて恐縮なんですがこのブログのRSS購読してるのですけどそこに関係ないブログ(http://blog.livedoor.jp/axing5/)のRSSが混入してくるのですが、こっちの設定のせいですかね?
以前はこんなことなくてここ以外のブログも正常なのですが。
Posted by nao at 2009年02月05日 19:31
初心者なので何故下記の様に言えるのか、
例えばPythonはどういった所が上司っぽいのか
いつでもいいのでお手数ですが
それぞれの特徴を教えて頂けないでしょうか。

>Perlへの愛を再確認させてもらった。
>上司にするなら Python、同僚にするなら Ruby、
>部下にするなら JavaScript といった昨今だが、
>やはり女房は Perl に限るZE!
Posted by 初心者 at 2009年02月04日 12:36
内容と位置づけからいくと、もっと強気な価格設定してもよさそうなきがしますね。
Posted by oyama at 2009年02月04日 00:04
s/Catalist/Catalyst/ ですね :-)
Posted by mattn at 2009年02月03日 20:42
さて,反映されるのはいつの日か
http://www.seshop.com/book/errata/Default.asp?mode=detail&pid=10250&printno=1&pageno=all&Submit2=%8C%9F%8D%F5
Posted by k.daiba at 2009年02月03日 18:17