はじめに
3/22・23の2日間、PHPerKaigi 2025に参加してきました。
自分が聴いた中で特に印象に残ったセッションについて、まとめていきます。
※自分なりの解釈もあるため、うまく理解・咀嚼できていないところがあります。また公開されている資料を添付しております。
セッション
PHPによる"非"構造化プログラミング入門 -本当に熱いスパゲティコードを求めて-
構造として、MVC2型・構造化(手続型)・非構造型を分かりやすく伝えているセッションでした。
非構造型は、わずか2ファイルという構造から見るとシンプルで個人的にはスッキリしていていいなと感じました。肝心の中のコードはスパゲッティコードと言われるコードで、特にgoto 文を使って、プログラムの実行フロー(処理の流れ)をラベルにジャンプして制御する書き方のことは知らなかったので、こういう書き方があるんだと勉強になりました。
身近なところで言うとcomposerの中にgotoがあるのに驚きました。
印象的な言葉は「人間が考えていく範囲は変化していく」という言葉。何年も前と同じでいいのかは自分の頭で考えていかないといけないと感じました。
資料:https://speakerdeck.com/o0h/phperkaigi-2025
PHPでお金を扱う時、終わりのない謎の1円調査の旅にでなくて済む方法
PHPで数字を扱う時にどういうところに気をつけた方が良いのか、またこうしたら良さそうと言う内容を分かりやすくまとめられているセッションでした。
基本的に数字は、文字列で扱いBCMath系関数で計算した方が良い。文字列にできない場合はintで丸めの処理が起きないようにfloatは使用しない方向にする。
初めて知ったのですが、ValueObjectとして意味のある値に振る舞い(ロジック)を持たせたクラスを作って、値に関するロジックを集約して、このクラスの中以外で定義したりしないようにする。例えば消費税の計算をする際は、このValueObjectに合計金額を定義していて、このオブジェクトに対して消費税をかけることによって、もし消費税率が変化しても、ValueObject自体はそのままで良いなど
PHPで数字を扱うときに「どこに注意すべきか」「どう扱うとよさそうか」が分かりやすく解説されていたセッションでした。
基本的には「数字は文字列として扱って、BCMath系の関数で計算する」のが安心。floatは誤差が出るのでなるべく使わない方がよくて、どうしても数値として使うならintにして対応する。
特に面白かったのが、ValueObjectの活用。
たとえば「合計金額」みたいな意味のある値に専用クラスを作って、そこにロジック(例:消費税の計算)をまとめる。こうしておくと、たとえば消費税率が変わっても、そのクラスの中だけ直せばOKで、他のコードに影響しにくいところがなるほど!と面白かったです。
お金の計算に関わらず数値系、例えばポイントなどにも活用できそうです。
私の愛したLaravel 〜レールを越えたその先へ〜
なぜ中規模のアプリケーションで破綻させてしまうのかについて分析されて、まとめられてた内容のセッションでした。博士の愛した数式という本に沿ってストリー性もあって最後まで面白かったです。個人的に「うるさくて汚くて癇に触るコード」が刺さりすぎて、痛かったです。
柔軟で拡張性のあるLaravelをどう破綻させないように設計をするのか、について言語化していただいて、スッキリした部分もあり、今後の業務にまで落とし込めるには、まだまだ不足しているなと感じました。ドキュメントに未記入=対応されていない機能と思っていたので、そこの勘違いをなくして、スライドのリスクを最小限にするにはの内容をしっかり理解して、活かしていきたいと思います。
資料:https://speakerdeck.com/kentaroutakeda/si-noai-sitalaravel-reruwochao-etasonoxian-he
アーキテクトと美学:美しさがシステムにもたらす秩序と未来
アーキテクトとはをアートを用いて表現されており、終始面白く分かりやすい内容のセッションでした。三角形の構図の話を聞いてから、アートを見ると無意識に構造を探してしまいそうです。
印象に残ったのは「アーキテクトには“価値を維持する”役目がある」という言葉。美しく価値あるものを作り続けるためには、その価値を守る意識が必要であり、それを養う手段のひとつとして“アートに触れる”という提案があったのがすごく良いなと思いました。
特に共感したのは「人は言葉でしか思いを伝えられない」という話。感じたことや考えたことを相手に伝えるには“言語化”が不可欠。でも、それはただ単に言葉にするだけじゃなく、背景にある知識や体験があってこそ伝わるものなので、この“言語化力”って、仕事でもプライベートでもすごく大事。どれだけAIが発達しても、自分の思いをどう伝えるかは自分にしかできないことだからこそ、この言語化力を養っていきたいと思いました。
資料:https://speakerdeck.com/nrslib/architecture-and-aesthetics
企画
PHPerKaigi 2025の中では、セッションだけではなく、スタンプラリーやコードバトル、ランチマッチング企画など、そのほかの企画も盛りだくさんで、今年は企画にも参加しました。
スタンプラリー(写真撮り忘れました。)は全部制覇して12回まわしましたが、全部白(ハズレ)と12回回せば1回当たる確率なのに、当たらなかったので逆に面白かったです。
参加賞でキーホルダーいただきました。今回参加できなかったメンバーへのお土産ができてよかったです。
ランチマッチング企画では、たまたま登壇者の方と一緒になったので、感想お伝えしたり、その他の方々とも交流できて、参加してよかったです。
まとめ
こちらに書いていないセッションも含め、時間の都合で見れなかったセッションなど、後からみて勉強したいなと思っています。
去年参加した時は全くわからない・・・初めて聞くの状態からは、今年は「あ、なんとなく知っている。聴いたことある」など一部感じたところがあったので、少しは成長しているのかなと自分なりに感じれたところもあって、この1年間は無駄ではなかったなと感じました。
早速、帰りの飛行機まつ時間で先輩方々がこうしようかな、こうしたらいいよねって検討されていたので、自分なりに今回学んだところをどう業務に落とし込むと良さそうかを考えて、今後の業務に取り組みたいと思います。
貴重な経験させていただいた弊社、スピーカーのみなさま、参加者のみなさま、PHPerkaigiを開催・運営していただいたスタッフのみなさまに感謝いたします。ありがとうございました!