Scribble at 2023-06-24 07:30:56 Last modified: 2023-06-24 07:40:46

添付画像

Swooleで学ぶPHP非同期処理 ~並行処理/並列処理の基礎から実践的な開発手法まで一気にわかる

もう PHP の本は買ったり読んだりしないのだろうなと思っていたけれど、このまえジュンク堂で見かけた本書のようなものは一読に値するかもしれない。あと、PSR とかでいい本があったら買うかもしれないな。

本書のテーマである Swoole は、PHP のモジュールとしてリリースされている並列処理のライブラリだ。既に4年くらい前から、いっちょ噛みの巣窟である Qiita などではいくつかの解説が公開されている。そして、あのサイトでは典型的なことだが、何の実装事例もない。本当にそれで何か作ってパフォーマンス測定やったのかよと言いたくなるような、酷く詳細でテクニカルではあるけれど、しょせんは学生や三流コーダのコタツ記事が集まったサイトにすぎないので、これからシステム開発や IT ベンチャーに就職する方は、日経とか技術評論社とかが出している通俗本や雑誌記事と同じ程度に扱っておいた方がいいだろう。

で、Swoole そのものは興味深いのだけれど、まぁこうは言いつつも自分で使うかと言われたら微妙だ。手持ちの道具で仕事するしかないコーダとは違って、僕らのようなプログラマや IT アーキテクトのクラスだと、与件や要件や要求への対応が主眼となるため、もし本当に並列処理が必要なほどのパフォーマンスが要求される事案だったら、そもそもミドルウェアとして PHP は選ばないと思うからだ。簡単に言えば、PHP で書いた CMS を動かすのに並列処理をしてまで必要なパフォーマンスが求められるなら、僕だったら Swoole での実装を勧めるよりもレンタル・サーバのプランを引き上げたり、AWS とかを使ってるならマルチ・インスタンスにスケール・アウトした運用を勧める。もちろん、内部処理での計算コストを効率よくするために並列処理を導入することも可能だろうが、はたして大抵のシステムであらゆるところにモジュールを読み込んで並列処理で書く必要があるほどの非効率なルーチンがあるかというと、これも疑問がある。もしそういうシステムがあるなら、僕は並列処理を実装することを考えるよりも先に、そもそも設計の不備を疑うね。

それから理由はわからないが PHP で並列処理を実現するのであれば、昔なら pthread(これは既に開発が終わっている)だとか、あるいは parallel のような既存のライブラリと比較して初めて導入すべきかどうかが決まるはずだ。並列処理そのものの考え方は、コンピュータ・サイエンス学科を卒業していれば形式的には知っているはずの常識だろうから、PHP で特定のライブラリを使うことで並列処理が学べるなんていうアプローチは、ものごとの学び方の流れとして転倒しており、はっきり言って危険である。したがって、本書を読んで並列処理を組み込もうという動機をもつのは感心しない。それは、単に「並列処理」という何やらクールな言葉を使いたいだけの子供がやることであって、プロとしてお客さんのお金やサーバを預かる人間の考えることではない。

  1. もっと新しいノート <<
  2. >> もっと古いノート

冒頭に戻る


※ 以下の SNS 共有ボタンは JavaScript を使っておらず、ボタンを押すまでは SNS サイトと全く通信しません。

Twitter Facebook