【Laravel・Lumen】駆け出し & ベテランエンジニア が語る「 効率化 」 の話【ビヨンド勉強会#30】
目次
こんにちは!
システム開発部の福井です!
突然ですが、開発者にとって 「より速く、より低負荷で、より読みやすい」プログラムを書くことは使命であり、重要なテーマかと思います。
となれば「開発を効率的に行うためのアレコレを知ろう!」というわけで、弊社のPHP開発でもよく使用される「Laravel, Lumen」フレームワークにテーマを絞り、株式会社エクストランス様のご協力のもと、勉強会を共同開催いたしました!
駆け出し & ベテランエンジニア が語る「 効率化 」 の話
今回は、【 駆け出し & ベテランエンジニア が語る「 効率化 」 の話 】 をメインテーマとして、以下3名の豪華登壇者に語っていただきました!
1.「Eloquentを使ってDBアクセスを効率化しよう!」 株式会社ビヨンド 西原 正莉
2.「collection機能を使い倒したからこそわかるベストプラクティス」 株式会社ビヨンド 萬代 陽一
3.「Lumenを使って社内アプリを作った話」 株式会社エクストランス 南光 雄吉 様
※各登壇者の登壇映像はタイトルリンク先のYoutubeからご覧いただけます。
第1セッション 「Eloquentを使ってDBアクセスを効率化しよう!」
まず最初は、弊社ビヨンドの西原の登壇からスタートいたしました。
私自身、西原と同じくエンジニアになり6ヶ月目となるのですが、導入部分の「ただ動けばいいわけではない、、!!」が非常に身にしみます...!
負荷の軽減、処理速度の考慮をテーマにLaravel, MVCの概要説明を経て、モデルの効率的な扱いについての話に進みます。
今回は、「Eloquent」の『with関数』を使用して、リレーションが組まれたレコードをいかに効率的に取得するか、デモンストレーションを用いて分かりやすくご説明いただきました。
DBアクセス回数から実行クエリの違いについて解説いただいた後、「with関数を使用しなかった場合」との「処理速度」「メモリ使用量」の比較検証があったのですが、with関数の優位性は一目瞭然でした。
私も実務でwith関数を使用する事は多々ありますが、改めてその便利さを認識するところとなりました...!
また、後半には「with関数以外にもメモリ使用量を抑える方法はないか」をテーマに、chunk関数、cursor関数を使用した試みも行われており、非常に興味深かったです!
登壇の動画はこちら
「Eloquentを使ってDBアクセスを効率化しよう!」
第2セッション 「collection機能を使い倒したからこそわかるベストプラクティス」
続く第2セッションは、こちらも同じく弊社ビヨンドの萬代の登壇となります。
冒頭「PHP歴15年になってしまいました」という言葉に重みを感じます...!
今回は、Collectionの概要、メリット・デメリット、使い方についてご説明いただきました。
私自身、場合により配列操作時にCollectionを使用しますが、まだまだ勉強不足なところもあるので、ためになる内容、参考にしたい点が多くありました。
前半部分で、「配列に対して複数の処理を行う」場合を例に、「Collectionとforeachの違い」を解説していただきましたが、とても分かりやすく腑に落ちる内容でした。
また、「テストでもCollectionが使用できる」をテーマに、UnitテストでのCollectionメソッドの使用例を紹介していただきましたが、こちらは個人的にも覚えておきたい内容だと思いました!
その他にも、Collectionを使用して「1から10までの数字を3つ使ってできる重複のない組み合わせ」を求める問題や「学生のテストの偏差値」を求める問題など盛りだくさんだったので、ぜひ動画内の解説をご覧いただければと思います!
登壇の動画はこちら
「collection機能を使い倒したからこそわかるベストプラクティス」
第3セッション 「Lumenを使って社内アプリを作った話」
最後となる第3セッションは、株式会社エクストランス様より南光様にご登壇いただきました!
「Lumenを使って社内アプリを作った話」というテーマで語っていただきましたが、まず始めに南光様の「Gopher愛」に心を掴まれました...!(詳しくはぜひ登壇動画をご覧ください!)
さておき、ご登壇の内容についてですが最初に、南光様がLumenを使用されたきっかけ、Lumenの概要説明を経て、実際に作成された「承認依頼メール配信アプリ」についてご紹介いただきました。
前半部分で、南光様がLumenを使用される前と後のご自身について、「フレームワークがいかに便利なものか」を語られていたのが印象的でした!
その後、Lumenのルーティング、コントローラー(およびモデル)、バリデーションの各処理の書き方についてコードを例にご説明していただき、後半は「LumenとLaravelの違い」にテーマが移ります。
Lumenでは使用できないartisanコマンドやFacade・Eloquentの読み込み、環境変数の取得処理の書き方の違いなど、より詳細に解説していただきました。
また最後には、Lumenのメリット・デメリット、フレームワークの使用感や特徴、Laravelとの違いをまとめていただいておりますので、登壇動画から、より具体的なお話をご視聴いただけます!
登壇の動画はこちら
「Lumenを使って社内アプリを作った話」
まとめ
いかがだったでしょうか?
第1~第3セッションを通して、Laravel(Lumen)を使用する際の効率的な使い方・書き方、便利な関数、LaravelとLumenの違いなど広く、かつ分かりやすく解説していただき、本記事をご覧いただいている皆様にもきっとお役立ていただける内容なのではないかと思います!(私個人としては大変ありがたい勉強会となりました...!)
今後もビヨンドでは、インフラ・開発に関する勉強会を行ってまいりますので、ぜひ次回の勉強会には、「connpass」「Doorkeeper」からお気軽にご参加くださいませ!
※各コミュニティのメンバー登録しておいていただくと勉強会の開催がすぐにチェックいただけます。
最後に
私が所属するシステム開発のサービスサイト「SEKARAKU Lab(セカラク ラボ)」を開設しました。
ビヨンドは、サーバーの設計・構築から運用までをワンストップでお任せいただけますので、サーバーサイド開発でお困りの方はお気軽にお問い合わせください。
SEKARAKU Lab:[https://sekarakulab.beyondjapan.com/](https://sekarakulab.beyondjapan.com/)
最後までお読みいただきましてありがとうございました!