会社でLaravelをどのように運用しているかのセミナーに参加してきました。
一番感じたことは、会社内でルールを決める事が重要になってきますので、コーディングが上手い人から始めたばかりの人まで皆で共通認識を持つことで品質の一定化が図れます。
コーディングの上手い人しか理解できないソースで作られているので、その人が去ったらどう動いているのかが分からないということがよくあることではないでしょうか?
ルールを決めて、変更する場合も共有化をしていくことでこれからの管理がとても楽になるでしょう。
セミナー内でお話されていた会社は以下のようなルールで運用していましたので紹介します。
①Eloquentは使わない
クエリービルダーを使用するか、SQLを直接扱う
→便利な機能ですが、仕様が変わることで、テーブルの結合を結合したり複雑なSQLを組むと、逆に生産性が落ちてしまいます。
クエリービルダーは複雑なSQLでも作ってくれるので、積極的に使用し、もっと複雑になってきて、速度を求められるような場合には生のSQLを生成するような形で運用するとのことで、これは私も賛成だと思いました。
②named routeを使う
mamed routeを使うことで、ドキュメントルートが変わったときでも対応でき、便利になります。
ただし、全てに対して使おうとすると不便な部分も出てくるので、チーム内で先に共有しておいた方が良いでしょう。
ローカル環境で作業する場合には先にドキュメントルートを設定しておいて、サーバーに上げたときでもリンクや画像が表示される設定をしておくのがベストです。
③controller-service-repository
④パフォーマンス
ロジック側の検証が多い
→sql実行回数の抑制とチューニング
コンフィグキャッシュ
不要なミドルウェアの削除