quipped

Creative Commons License

初献本!パーフェクトPHP(^_^)

先日、以下のようにツイートしたところ

なんと作者の1人である@sotarokさんが、献本してくださった。まことにありがたいことである。一応通読したので、書評を書こうと思う。

月並みな表現になってしまうが、良書である。ぼくの中で、良書と言えるものに共通しているのは、どんなバックグラウンドの人でも何か学ぶことがあるということだ。例えば、ぼくはプログラミングそのものは丸3年やっているが、PHPに関しては、昨年の4月から仕事で使うようになってからであるし、いわゆるウェブプログラミングに関しても、昨年まではド素人だった(今でもそんなに知っているわけではないが)。そんな僕にとっては、序盤の文法のおさらいの部分は、軽い復習だったが、真ん中部分の、ウェブフレームワークの作成や、セキュリティに関する章は、頭の中を整理するのに役に立った。

これが、百戦錬磨のPerl/Ruby/Pythonプログラマーの人だったら、逆にフレームワークやセキュリティに関する章は既知の話で、むしろ序盤の言語の仕様に関する項目や、後半に登場するSPLやautoloadといった上級者テクニックの方が、参考になるのかもしれない[1]。え?百戦錬磨のPerl/Ruby/PythonハッカーはPHPなんか使わない?へえすいません。

もちろん、プログラミング初心者の人にも使いやすいように、本書はデザインされている。前半の丁寧な言語仕様のおさらいもそうだし、ツイッターを彷彿させるミニブログを例に、上手にMVCの基礎を紹介している。また、プログラミングに限らず、開発環境(p.265のレンタルサーバを使う場合に関するコラム)や、最初は混乱しがちなプログラミングの用語(p.332 Cross-Site Scriptingは頭文字をとるとCSSだけど、CSSはCascading Stylesheetの略だからXSSだよ)など、読者に対する筆者たちの細かい気配りが、随所にみてとれる。

ケチョンケチョンにバカにされるPHPだが、php.netというオフィシャルサイトにあるマニュアルは、半端なく充実していて、さらに使いやすい。もちろんユーザーが投稿しているコメントは玉石混淆(というかほとんど石)だが、それでも例が豊富にあるのは参考になる。この「ハウツーを充実させる」というphp.netのアプローチは、パーフェクトPHPでも踏襲されている。なんと最後の130ページは、まるまるレシピ集とレファレンスになっている。文字列の話やApacheウェブサーバの話、APCの細かい設定の解説からphp.netのマニュアルの読み方というメタなハウツーまで、豊富な例が取り揃えられている。php.netと、この本の最後の130ページの一番の違いは、エキスパートPHPerの著者3人の書いたハウツーは玉ばっかりという点だ。

PHPは、なんだかんだ言って実用的である。プログラミングを愛して止まない人たちにはわからないかもしれないが、大体の人間にとってプログラミングは手段であり、ウェブサイトを書くという目的を達成する手段でしかない[2]。型がどうだとか、JITがどうだとか、意味不明だし、どうでもいいのである。それよりも明日までにブログ会社のウェブサイトを作りたい--そんな99%の人たちにとって、PHPほど手頃なツールはない。そして、パーフェクトPHPは、その手頃なツールを、さらに使いやすくしてくれるガイドブックといえる。PHPに限らず、ウェブプログラミングに興味を持っている人みんなに読んでもらいたい。

これはパーフェクトPHPです。
####これはパーフェクトPHPです。

  1. 序盤の言語仕様の解説は、非常に丁寧だ。誰もが引っかかるarray_mergeと+演算子の挙動の差や、array_key_existsとissetの挙動および実行速度の差といった細かいトピックも、わかりやすい。
  2. 筆者の過去のエントリをご参考に。例えば「PHPは◯◯◯である」や、「これはPHPです」など。

2012-02-17