Laravelには便利な機能がたくさんあります。
Eloquent、Facede、サービスコンテナをはじめ、認証やミドルウェア、Bladeテンプレート、artisanコマンドなどなど…
これらのような機能を活用することで、スピード感のある開発ができることは間違いありません。
ただ、それらにどっぷり依存することによる弊害も少なくないでしょう。
あまりにも依存しすぎると、ビジネスの変化への対応による作り直し、各機能のバージョンアップの際に思わぬ量のコード修正になってしまうことがあります。
そんなことを想定し、Laravelのコードからドメインのコードが独立するよう、主にInterfaceを利用してドメインロジックを切り出すことを心がけています。
Laravelでプロダクト開発を行う中で、どのようにしてLaravelのコードとドメインのコードの距離を保っているかを紹介させていただきます!