It's okay to be weird

レールの無い道を行くプログラマーのブログ

『Modern PHP』を読んでPHPとそのコミュニティがより好きになった

Modern PHPという本を読みました(日本語版なし)。

Modern PHP: New Features and Good Practices

Modern PHP: New Features and Good Practices

モダンなPHPを学べる教材としてはPHP: The Right Wayが有名ですが、物足りなさを感じたため、他に何かいい教材はないかと探したところ評判の良いこの本にたどり着きました。

著者はPHP: The Right Way、Slim FrameworkのメンテナーであるJosh Lockhartです。

Modernとは題していますが発売日が2015/02/09で、当時のPHP最新バージョンは5.6なため、古くなっている部分も多くあります。それでも学びの多い本でした。

コミュニティにより進化してきたPHP

特に面白かった章はChapter 3. Standardsで、PHPが中央集権的なフレームワークモデルから分散型コンポーネントによるエコシステムに進化した経緯を知ることができます。それを実現するための推奨であるPSRと、それを策定するPHP-FIGがコミュニティによって育てられてきたこと、基本にあるのはインターフェイスに対してコーディングするということが書かれています。

LaravelがSymfonyコンポーネントを多く利用していることは有名ですが、こういった取り組みの成果なのだなと知ることができました。

Composerの登場によってエコシステムが著しく改善されたことも大きかったようです。

コンポーネントベースで考える

Chapter 4. Componentsでは、実際にマイクロフレームワークをメンテナンスしている著者が考える良いコンポーネントとは何かについて書かれています。良いコンポーネントの特性として、一点集中、小さい、協力的、よくテストされている、よくドキュメント化されている、ということが挙げられています。

また、著者はPHPアプリを新規作成する際にすぐにフレームワークの選定には行かず、まずどの既存コンポーネントを組み合わせて問題を解決できるかを考えるそうです。フレームワークを選択した場合、そのフレームワークの未来に投資しており、上手くいかない場合もあるという考えからです。結果としてフレームワークに行き着くこともあるでしょうが、大事な考え方だと思いました。

HHVMとHack

Part III. Deployment, Testing, and Tuningはホスティングの選別やデプロイといったPHP周辺のトピックについてです。この辺りは最新の事情が変わってそうなのでざっと読み流しました。

ただ、面白かったのは最後の2章で、Facebook主導によるHHVMとHackについて触れられています。おそらく世界一巨大なPHPユーザーであるFacebookがどのようにしてそれらを必要とするようになり、開発してきたかについて述べられており興味深かったです。また、それによって競争が生まれ、PHP 7での劇的なパフォーマンス向上に寄与したことについても書かれていました。

まとめ

各章が丁度いい深さと分量でまとめられており、とても良い本でした。PHPは何かと物議を醸す言語ではありますが、歴史とともに形を変えながら進化し、コミュニティによって育てられていることを知ることができる良い本でした。

PHPやそのコミュニティがこれまでよりもっと好きになれた気がします。これからまたどう進化していくのか、楽しみです。

リンク

Modern PHP: New Features and Good Practices

Modern PHP: New Features and Good Practices