Do You PHP はてブロ

Do You PHPはてなからはてブロに移動しました

効率的なWebアプリケーションの作り方〜PHPによるモダン開発入門

[twitter:@cocoitiban]さんの脱非モテ宣言が聞かれる今日この頃、皆さんいかがお過ごしでしょうか?
それは置いといて、著者の[twitter:@fivestr]さんから献本いただきました。ありがとうございます:-)

効率的なWebアプリケーションの作り方 ~PHPによるモダン開発入門

効率的なWebアプリケーションの作り方 ~PHPによるモダン開発入門

ざっとですがようやく一通り目を通しましたので、感想など書いてみようと思います。
また、すでに[twitter:@yando]さんと[twitter:@cocoitiban]さんの書評があります。

約350ページの大作

まずは「この分量をよく書いたなぁ」が率直な感想。ホントお疲れ様でした。

本書の構成

詳しい目次は技評さんの書籍ページを見てもらえば良いですが、ざっと以下の様な感じになってます。

Part1 MVC開発の基礎知識 オブジェクト指向MVCの基礎知識を解説
Part2 フレームワークを利用する利点 レガシーなコードを解説を交えて徐々にオブジェクト指向なコードに直していく
Part3 モダンPHP Webアプリケーション開発 Symfony2を使ってレンタカー予約アプリケーションを構築する

Symfony2をまるっと一通り解説

Part2の中盤以降で「Symfony2を使って1つのWebアプリケーションを作る」ということもあり、Controller/View(twig)/Model/ORM(doctrine)/フォーム(FormType)はもとより、Symfony2の特徴でもあるDIコンテナといった辺りを含めて、一通り解説しています。Symfony2だけでなくtwigやdoctrineを含めてこれだけの実践的な分量を日本語で書いた書籍は今のところないと思います。
また、面白いところでは、Consoleコンポーネントを使ったコマンドラインスクリプトについて1つの章を割り当てています。本書ではメール送信バッチを作成していますが、「こういう使い方もある」ということで参考になるのではないでしょうか?
あと、画面整形にTwitter Bootstrapを使ってます。流行りですねぇ。

ユニットテスト・機能テスト

基本的にPHPUnitを使って解説していますが、[twitter:@iteman]さんのStageHand_TestRunnerを導入することで毎回手動でphpunitコマンドを叩かないで済むようになっています。これイイですね:-)

実際の開発の流れを見ることができる

開発のフローやコードなど、実際に著者が行なっているであろう内容となっていて、自分自身の開発手順を考えた時に参考になる部分もかなり多いです。
また、バージョン管理には*モダン開発*らしく(?)gitを使っていて、branch管理のためにgit-flowというプラグインを使うようになっています。個人的にはまだ深くgitを使っていないということもあり、branchを作成するタイミングとかいろいろ勉強になりました。

Symfony2の*入門書*ではない

はっきり書いときますが、本書はSymfony2を使っていますが

Symfony2の入門書ではない

です。symfony1.x系の書籍がいろいろ出てますが、それらとは異なります(その一歩二歩先の内容)ので「入門書」にあるような解説を期待するとガッカリすることになります。
特に、Symfony2やdoctrineで導入されている、かつ、キモである(と思われる)アノテーションの説明など皆無なので、開発経験者でなければ問題なく読み進められないと思います。ここは、ドキュメントページへのポインタだけでもあったら良かったかも。

その他気になった点

全体的に、新しく出てくる用語の説明は少ないです。この意味でも、ある程度のWebアプリケーション開発経験者でないとキツイと思います。
また、Mac上で動作テストしているということで、CLIのコマンドがDebian系です。

typo見つけた

p.167の1行目で「gruops属性」になってる。。。

まとめ

本書は「Symfony2を使い始めて一通りなんとかなるようになったPHPプログラマ」の方にとっては今後の開発手順や各種テストを含めて非常に参考になる部分が多いので、ホントに貴重な書籍になると思います。また、フレームワークを使った開発経験がそれなりにある方であれば「Symfony2ってどんなんや?」といった感じで読めるかと思います。
また、結構な量の予備知識が必要、もしくは、読み進める際に実際に自分で検索・試すことになるかな、と。まあ、カバーしている範囲がかなり広いのですべての説明は無理だったんだろうと思います。ただ、これは[twitter:@yando]さんも


今後の開発のスタンダードをgitやユニットテスト、bootstrapという所まで一気に水準を引き上げる意味がある書籍でしょう

と書かれていますが、

書籍の内容をキッカケにして、周辺にある様々な技術を知る・試すことができる

とポジティブに考えてそれを実践できるのであれば、この1冊だけで1ランク、いや数ランク上の開発ができるようになるんじゃないかと思います。

これだけ濃い内容の書籍が3000円弱ですよ。いい時代になったもんだ。