yak shaving life

遠回りこそが最短の道

「PHPはどう動くのか」を読んだ

まえがき

積ん読消化の手引きが書かれた素晴らしい記事を読んだので、実践してみようと思う。
note.mu

自身の備忘録&読書のモチベーション向上、あとは自分の感想を見て参考にしてくれる人が世の中に1人でもいたら嬉しいという心持ちです。


タイトル

PHPはどのように動くのか ~PHPコアから読み解く仕組みと定石

PHPはどのように動くのか ~PHPコアから読み解く仕組みと定石

  • 作者:蒋池 東龍
  • 発売日: 2015/09/17
  • メディア: 単行本(ソフトカバー)

PHPはどう動くのか 〜PHPコアから読み解く仕組みと定石


なぜ読もうと思ったか

職場の先輩がオススメしていたし、前から気になっていたから。
Kindle版を買って、通勤時間とかで読んだ。


読了した感想など

一言で言うと

PHPの言語処理系についての入門書的立ち位置と思われる。良い。すごく良い。ただし、より深く追うためには自分でソースを読んだりPHPマニュアルを見る必要がある。当たり前か。

感想箇条書き

  • PHP内部のことについて色々知れる。面白いしみんな読むべき
  • オペコードそのものの解説とかはないので詳しいことは自分で調べる必要がある
  • PHP7はなぜはやいのか、の章が一番良かった。
  • 文字列構造体とかが持っているコピーオンライト判定用のzend_refcounted構造体の変数名がgcなのがいいなと思ってにやっとしてしまった(気持ち悪い)
  • メモリを富豪的に使うことでパフォーマンスを向上させるアプローチが随所に見られた。ソフトウェアもハードウェアとともに進化していくといういい例だと思った
  • 自分の無知を噛みしめる良い機会になった

実はよく分かっていないところ

PHP7のHashTableの構造が微妙によく分からなかった。Bucketのリストはどう持ってるのやら。
あと、「第7章 Zend Engineをハックする」はほぼ流し読みしかできていない。いつかもう一度読みたい。というか、この章は読むだけだと眠すぎる。ちゃんと写経して動かした方が良さげ。


読んだ後どうするか

第1〜3章および第5章の内容を心に留めて、なるべくパフォーマンスの良いプログラムを書けるよう意識する。内容忘れそうなので1章と2章は繰り返し読みたい。
また、PHP7へのバージョンアップを推進するときの材料が増えた。
あとはhttp://php.net/manual/ja/internals2.phpを読んでみようという気持ちになった。