Laravelを使った老舗アプリケーションの進化: スケーラブルな設計へと導く"Package by Feature"の導入 by NobleNomad

PHPerKaigi 2025
ルーキーズLT(5分)

Laravelを使った老舗アプリケーションの進化: スケーラブルな設計へと導く"Package by Feature"の導入

NobleNomad41 NobleNomad NobleNomad41
1

概要

私たちのチームが手がけるLaravelで構築されたサービスは、Layered Architectureを採用しており技術ごとにクラスやフォルダを分けていました。
6年以上運用されているこのサービスでは、アプリケーションの拡大に伴いディレクトリ構造が複雑化し、新機能追加時に複数のレイヤーにまたがる変更が必要となるなど、コード修正の困難化や影響範囲の肥大化といった課題に直面していました。

この課題を解決するために、私たちは機能ごとにクラスやフォルダを分離する考え"Package by Feature"という設計手法を採用しました。
本トークでは、術ごとの分離ではなく、機能ごとにコードを分離することで得られるメリットと、その実践例を実際の適用事例を通して共有します。

話す内容

  • 機能単位でコードを分離するアプローチの概要とその目的
  • 技術単位での分離との比較による利点
  • 機能単位でコードを分離することで、他の部分への影響がどのように最小限に抑えられ、テストやデプロイまでがどれほどスムーズになったか
  • 直面した具体的な課題と、それに対する解決策
  • 複数の"Feature"間でデータやロジックを共有する必要がある場合の具体的な対処法と実例

本トークを通じて、よりスケーラブルで保守性の高いコードベースを構築するための手がかりを共有できたら幸いです。