[書評]効率的なWebアプリケーションの作り方ーPHPによるモダン開発入門ー
小川雄大さんの新刊、効率的なWebアプリケーションの作り方 ~PHPによるモダン開発入門
をPHP勉強会のarray_randのお陰で頂いたので読んでみたので感想を。
実質的にはSymfony2の貴重な日本語書籍
この書籍はMVCやオブジェクト指向の基礎からスタートして、Symfony2(Symfony Standard Edition)、Doctrine、Twigやgit、git-flow、Twitter bootstrap(v2)、PHPUnit、Stagehand_TestRunnerといったツールを駆使してアプリケーションの開発を行う流れをソースコードを発展させながら解説するという書籍です。見ての通り最新のツール群を取り揃えた形の解説書籍になっています。特にSymfony2を使ったコードが(namespaceが付いたコード)書籍で確認できるという意味では貴重なのではと思いました。
またgitにはgit-flow、PHPUnitにはStagehand_TestRunnerとツールに対して拡張ツールを併用して活用する方法を解説しているというのもかなり珍しいと思います。
特に良さ気なところ
書籍の序盤部分ではオブジェクト指向を使わないコードをリファクタリングしながらオブジェクト指向にしていく流れが解説されています。単なる文法の解説でもなく、安易なメタファーを使うわけでもなく最適解としてオブジェクト指向を解説しています。
また実際の解説の部分ではTwigやbootstrapなどを使ったコードになっているのでいわゆる「サンプルだからしょうがない」的な妥協がかなり少なくなっているように思います。最小限のステップで開発を進めているのでSymfony2難しそう、セットアップ大変そうといった感触はかなり少なくなっているのでSymfony2の概略を知った上で雰囲気はどうなの?みたいに思っている人にはすごく良いと思います。
またユニットテストについてもSymfonyの強みとも言えるブラウザをエミュレーションしたテストとコントローラーなどの各モジュールのテストが解説されています。dataproviderなどのアノテーションもさり気なく使っているのがすごいですね。
Symfonyについてもバンドルやコンソールの利用方法が提示されているのでこの書籍のスタイルで開発すれば拡張性を担保しながらCronから起動される処理なども開発できそうです。
Symfonyなどのリファレンスではない
流れを解説していく構成になっているので、一般的なSymfonyの特徴や機能を網羅するパートはありません。とはいえそういった情報はWeb上の公式ドキュメントを見れば簡単に入手できるので紙面の構成としては正しいと思います。またコードの内容にかなり着目した内容になっているのでセキュリティやパフォーマンスチューニング、クラウド環境の利用といった外部環境に関する記述は基本的にありません。gitの扱いについてもgit-flowを使って抽象化しているのでごく基本的な操作が取り上げられています。gitを初めて活用する場合は別の資料も合わせて利用することになるでしょう。
総評「当たり前を定義しなおす本」
以上のように中上級者向けといった書籍ですが、それ以上に今後の開発のスタンダードをgitやユニットテスト、bootstrapという所まで一気に水準を引き上げる意味がある書籍でしょう。過去の経緯やメンバーが未経験であるからといった理由でSmartyやSvn、ユニットテストはしないといった技術的な妥協をする誘惑は数多くありますが、やはり時代は確実により便利なツールセットに流れています。
軸足をPHPに置いて活動するようなエンジニアにとっては腕試し的に内容を理解できるか使えるかを確認してみるのによい一冊ではないでしょうか。