はじめに
先日PHPカンファレンス2024に行ってきました。
参加して印象に残ったセッションや学びを簡単にまとめたいと思います。
印象に残っているセッション
Beyond ORM
便利なORMですが、時には使いづらさを感じることもあるかと思います。
例えば、次のような場合です。
- ORMの機能を使うためにやたらと実装が複雑になるとき、やたらとメモリ使うとき、やたらとループしないといけないとき
- 「これPHPでごちゃごちゃ書かずにSQL一発打たせてくれたらいいのに」と感じたとき
こうした状況では、アプリケーション内でORMを「便利に使える場面」と「使いづらい場面」を見極め、適切に使い分けることが重要という内容でした。
ほとんどのORMには生のSQLを直接実行できる仕組みが用意されているため、必要に応じて活用し、ORMの辛さを乗り越えていこうと思いました。
見えないメモリを観測する: PHP 8.4 pg_result_memory_size()
とSQL結果のメモリ管理
タイムテーブルを見た時から気になっていたセッションでした。
PHPには見えないメモリ(PHPで管理できない)メモリがあり、大量データを取り扱う際に注意すべきことを知れました。
特に、状況によってはメモリが二重に消費されることがあるという話は驚きでした。
この仕組みを理解することで、大量データ処理時のパフォーマンス低下やメモリ不足によるエラーを未然に防ぐことができます。
終了の危機にあった15年続くWebサービスを全力で存続させる〜Twilog・Togetter統合の舞台裏
TwitterがXになり、無料だったAPIが有料化されたことで、大きな影響を受けたTwilogとTogetter。サービス継続のため、両サービスが統合することになり、その際の舞台裏で起こっていた事をお話しいただきました。
15年間に渡り溜め込まれたデータの移行、RubyからPHPへの書き換えなど、様々な課題をどのように解決していったのかが詳しく紹介されました。
(15年間のうち1日分のデータだけ欠損していてデータ移行のやり直しなど..)
責務を分離するための例外設計
例外処理の設計について学びがあったセッションでした。
例外の型の使い分けに迷うことがあるので、その課題を解決するための具体的な指針を得られたのがよかったです。
例外処理の設計は単なるエラー対策にとどまらず、システム全体の品質にも関わる重要な部分だと再認識しました。
さいごに
今回で2度目のPHPカンファレンス参加となりましたが、前回以上に多くの刺激と学びを得ることができました。
前回はあまり足を運べなかったスポンサーブースを積極的に回り、各企業がどのような技術やサービスを提供しているのかを直接知ることができて良かったです。