急須で入れたようななにか

記事サムネイル

今年もPHP Conference Japanに行きました!!

2023年10月9日

6 分くらいで読めます!

今年もPHP Conference Japan 2023の季節がやってきました。
PHP Conference Japanは2000年から続き、24回目の開催とのことです。

私的ベスト登壇

今年のPHPカンファレンスは6トラック同時進行という聖徳太子もびっくりのカンファレンスで、1日で53トークもあったようです。(多すぎ!)

私が拝聴できた登壇の中で、特に書き留めておきたい登壇をピックアップしてご紹介します。(長いと誰も見てくれないので……激選3つ!!)

Webアプリケーションのパフォーマンス・チューニングの勘所

Webアプリケーションのパフォーマンス・チューニングの勘所
Webアプリケーションは生き物です。作って終わりではなく、日々運用を行っていかなければいけません。しかし、日々成長するWebアプリケーションは突然パフォーマンスが問題になり、サービス障害を生み出します。 そこで今日はシンプルなLAMP環境で動くようなWerbアプリケーションのパフォーマンス・チューニングの勘所についてご紹介します。 # 話すこと- MySQLやPostgreSQLのスロークエリの見方と対応方法- プロファイラの使い方や計測の仕方- キャッシュの種類と選び方と使い方 # 対象者- 大規模ではなく、レンタルサーバーやシンプルなLAMPやLAPPの環境の人- PH…

カンファレンスでおなじみそーだいさんの発表です。

発表が極めて分かりやすいので、個人的に覚えておきたい部分だけ挙げます。

運用中の大規模オンラインゲームで8年ぶりにPHPバージョンアップをした話

運用中の大規模オンラインゲームで8年ぶりにPHPバージョンアップをした話
常に機能追加が続く運用中の大規模オンラインゲームプロジェクトで、PHPを5.5から8.1にバージョンアップしました。言語バージョンアップに伴い、PHPUnitも4.5から10に更新しました。 今回のバージョンアップについて、以下のポイントで話したいと思っています。- バージョンアップの計画と結果(平均レスポンスタイムが42%短縮)- PHPのバージョンアップでPHP_CodeSnifferをベースにして修正箇所を特定していった話や、そこで起こった問題へ対応- PHPUnit10にバージョンアップする際、代替手段なしに削除されたメソッドへの対応など- PHP5.5とPHP8.1を並行…

プロ驚き屋になってもいいレベルの偉業なのですが、淡々とPHP5.5.13からPHP8.1へアップグレードしたことが紹介されていました。

のような難易度がめちゃくちゃ高い要件をクリアされたとのことでした。

取り組み方としては

のような形で、

だったようです。

またバージョンを上げたことで

とのことでした。
レスポンス速度が早くなりすぎてタイムアウトのテストがうまく動かなくなったという話は笑ってしまいました。

またどの程度変わったか、どの程度変更したかが数値で示されていて、きちんとデータが取られていると感じ敬服でした。
私も資料を作るときはきちんと数値で示せる人間になりたいです。

私は過去にPHPのパッチバージョンのバージョンアップだけで本番環境を破壊したことがあります。
バージョンアップ対応はとても大変です。まとめてやらざるをえず、周囲にバージョンアップの大切さの理解も必要で、さらに暗黙的な型変換の挙動変更や依存するライブラリの挙動変更など問題の発見自体も難しいです。

この登壇を聞いて、ちょっとしたバージョンアップに苦しむ自分が小さく感じられて、聞いてよかったなって思いました。

(LTでも「これから始める!ニ段飛ばしのPHPバージョンアッププロジェクト戦略」にてPHP5系かPHP8系へのアップグレード事例が紹介されてて、こちらも興味深かいです)

commitを積むとは「物語を書く」ことである

commitを積むとは「物語を書く」ことである
PHPカンファレンス2024LT発表

自分自身、gitのコミットメッセージと内容は気をつけよう(dotfilesなど文脈不要なものは除く)と心がけていたため、とても共感できる内容でした。
(いろいろなリポジトリでコミットメッセージやブランチが整っているといいチームだって感じたりします。)

発表によるとコミットで大事なのは

で、例えば「fix 考慮漏れ」でなく「fix XXがYYの時判定されないので修正」とするといった具合です。
まさにそうで、コードの文脈が分からない時にgit blameで出てきたコミット名でコードの意図が分かれば、コードの意図を当時の開発者に聞く必要もなくなり、みんな幸せになれます。

またレビュー受けての修正コミットを「[review-fix] 変数名揃える」のようにするというアイデアは個人的に初耳で、取り入れようと思いました。

キレイなコミットを積んでいくことで、プルリクエスト時に物語としてレビュワーに伝えることができます。もちろん最初から全てできるわけではないので、rebaseで整える形です。ちなみにPhpStormではrebaseが簡単にできるらしいですよ。

コミットは書き手と読み手が繋がる部分で、コミットを積むとは「物語を書く」ことであると言うことでした。国語の作者の気持ちを答えなさいと同じです。

ちなみにPHP製で有名なフレームワークLaravelはwipコミットがたくさんありますが……

Laravel のメインブランチの中に存在している “wip” コミットを洗い出してみた - Qiita
背景Laravel には,「コミットメッセージ書くのめんどくせぇ!全部 wip でいいわ」という信仰に従って(?),メインブランチにも堂々と wip とだけ書かれたコミットがプッシュされていま…

スタンプラリーとブース

今年のPHPカンファレンスは1日の開催にも関わらずスポンサー企業53社という大規模なイベントでした。

スポンサーブースは37社あり、スタンプラリーではこの全ブースを巡ってスタンプを集めました。最初はちょっとだけ埋めようとおもっていたのですが、気持ちが乗って(豪華景品に目が眩んで)全ブース制覇してしまいました。いろいろな企業の話も聞けて、スタンプラリー文化良いですね……

ノベルティめちゃくちゃたくさんいただいた

感想としては、いろいろな需要が社会にはあって、いろいろな人が解決しているんだという小学生の社会科見学みたいな感想になってしまいました。でも本当に、社会ニーズもドメインも様々で、社会ってすごいなと感じています。

スタンプラリーではスプーンセットを当てました

次のカンファレンス

エンディングでは次のカンファレンスの案内も行われました。

といった具合です。PHPコミュニティ盛り上がりすぎていません……???
世はまさに大PHP時代!

おわり

KEYNOTEでもありましたが、PHP is deadは毎年言われている言葉です。
ですがそれとは裏腹にPHPコミュニティはどんどん盛り上がっているように感じます。(外部の評判と当事者間であまりにも乖離がありすぎます……)
今年のPHPカンファレンスはスタッフだけでも92人で、参加人数は900人を超えています。

学生の私の戯言ですが、PHPはコミュニティが成熟しているだけでなく、カンファレンスの登壇内容も成熟していると感じます。RubyVMやJVMをPHPで実装するといった技術的挑戦や、アーキテクチャやパフォーマンスの改善、技術的負債の解消といった実プロダクト運用上の知見など、他の言語に負けないくらい最高に面白くてつよい世界が形成されていると感じました。

来年から就職で、就職先はPHPを使わない企業なので、この世界から距離が離れる事実に少し物寂しさすらあるほどです。