🐘

PHPerKaigi 2025に登壇させていただきました: 『ドメインイベントを活用したPHPコードのリファクタリング』

こんにちは!TechBowlで Product Engineerと Engineering Manager をやっている梶川(@kajitack)です。
仕事では主にTechTrainの開発を担当しています。

今回はPHPerKaigi 2025の登壇レポートです。
参加したセッションの詳細な感想などは、改めて別の記事でご紹介する予定です。お楽しみに!

登壇内容

『ドメインイベントを活用したPHPコードのリファクタリング』というタイトルで登壇させていただきました。

https://fortee.jp/phperkaigi-2025/proposal/5615c479-cc86-42db-b6b8-d3879e557a3e

発表では、ドメインイベントを活用したリファクタリングの実践的なアプローチを紹介しました。
ドメインイベントとは、ビジネスドメイン内で起きた重要な出来事を表すオブジェクトのことで、単なる通知メカニズムではなく、ドメインの状態変化を明示的に示す役割を持ちます。

今回の発表の主なトピックは以下のとおりです。

  • イベントの特定とモデリング方法
  • イベント発行とハンドラーの実装およびテスト手法
  • 段階的にリファクタリングを行う方法

登壇した背景

私たちのプロダクトは成長とともにコードベースが拡大し、機能間の依存関係が複雑化していました。ドメインモデルの変更が別のドメインモデルに影響を与えるケースが増え、変更やテストが難しくなっていきました。

この課題を解決するため、ドメインイベントを活用したリファクタリングを進めました。
イベントの発行とハンドリングを明確に分けることで、各機能の責務を切り離し、影響範囲を把握しやすくなリました。

また、技術的な改善だけでなく、チーム全体のコミュニケーションが改善されたことも大きな成果でした。ドメインイベントという共通言語が出来たことで、エンジニアはもちろん、ビジネス側のステークホルダーも含めたチーム全体で認識が一致し、要件の解釈ミスや実装の齟齬が減少しました。

このような経験を共有したいと思い、今回の発表を行いました。

登壇の振り返り

登壇では「リファクタリング」というキーワードを軸に、どのようにドメインイベントを段階的に導入してコードベースを改善していったかを具体的にお話ししました。
少しずつコードを変えていく実際の過程を共有したことで、多くの方から共感の声をいただき嬉しかったです。

また、ドメインイベントの実装パターンに関して多くの関心が寄せられました。
今後はイベントを非同期で処理する際の設計や結果整合性の保ち方についてより深ぼった内容を発信したいと考えています。

おわりに

登壇を聞いてくださった皆さま、そして運営スタッフの皆さま、本当にありがとうございました!

今回いただいたフィードバックや懇親会でのディスカッションを活かし、今後も内容をアップデートしていきたいと思います。

TechTrainテックブログ

Discussion