エンジニア(業務委託) の @junkitamura です。
この記事は Photocreate Advent Calendar 2018 の 8日目 の記事です。
はじめに
 2018年11月28日、フォトクリエイトさんにて開催されたららびゅう座談会に参加させていただきました。
 Laravel と Vue.js を合わせてLaravel と Vue.js に関する座談会でしたが、本投稿は Laravel にフォーカスしています。といっても技術的な話はありません。
 座談会の内容は @imunew さんによる Photocreate Advent Calendar 2018 の 5日目の記事にあるスライド等をご覧ください。
 自己紹介させていただきます。
 業務委託のサーバーサイドエンジニアとして1年半ほどフォトクリエイトさんのお手伝いをさせていただいております。
 フリーランスとしては高齢で、以前は主にWebシステムの受託開発などをしておりました。言語としては VisualBasic や C、Java、PHP といったものを扱ってきました。
 初めて(おれおれで無い)フレームワークと呼ばれるものを使ってシステム開発をした時のフレームワークが Laravel 5.2 でした。開発途中で 5.3 にバージョンが上がり大きく変わったので慌てた記憶があります。フォトクリエイトさんに来てからチームによる開発を初めて経験し、それまではバックアップ目的でしか使っていなかった Git などのプルリクなんかも初体験でした。フレームワークはSymfony2.8を主に扱っておりました。今は Go言語でプログラムを書く事が多いのですが、これはまた別のお話。
 ららびゅう座談会で私が最も知りたかった疑問は なぜ Laravel を使うのですか? でした。
フォトクリエイトさんの場合
 フォトクリエイトさんでは現在、おれおれフレームワークちっくなナニカ(便宜上 レガシーコード群 と呼びます)と Symfony(2.8系) が主に使われています。そして今後は レガシーコード群 を Laravel+Vue.js に置き換えていきます。既に決定事項で移行作業も開始されており、開発が終了して運営されている案件もあります。
 フォトクリエイトさんでLaravel + Vue.jsを使う理由は既に @imunew さんにより社内向け Qiita にて発表されています。もちろん、Symfony4系 や他のフレームワークも候補にあがっており、それらの特性や特徴を挙げた上で Laravel + Vue.js が選ばれています。
当該記事の Laravel パートを引用させていただきます。
Laravel
個人的には、Laravelを採用したいと考えています。
採用してもいいと思う理由
- Webアプリケーションに必要な機能が最初から揃っている印象
 - かゆいところに手がとどく標準ライブラリ
 - いい意味でゆるふわ
 - 使っているデベロッパーが多い(国内的にも世界的にも)
 - vue.jsが標準でバンドルされている(Laravel-mix)
 採用しないほうがいいと思う理由
- Facadeいろいろ良くない(コードの境界が曖昧になりがち、実際にはstaticではなくてインスタンスを生成してしまう)
 - 悪い意味で重厚
 
この内容は座談会でトークしていただいた方々の理由と似ています。(Facade の賛否にはあえて触れない)
座談会参加者さんの場合
 こういったイベントの醍醐味は休憩や歓談タイムに識者に直接質問ができ話が聞ける事だと思っています。
 歓談タイムで登壇者さんの方々含め他の方にも Laravel を選ぶ理由は何ですか? 的な話を伺うことができました。
 強く感じたのは、Laravel が好きなんだなぁということ。
 会場にいた方々は経験も豊富で、今まで触れてきた言語やフレームワークと比べてLaravel + Vue.jsと相性が良いと感じたのだと思います。
 設計のなんたるかを(ある程度でも)理解していて、この案件にはあっちのフレームワークが合っていると解っていつつ、あえてLaravel + Vue.jsを使う。もちろん、無理矢理に強引に、という話では無くLaravelの特性を生かしながら。…そんな印象を受けました。
Laravel + Vue.js を覚えようか、使おうか…
 エンジニアさんのなかにはパソコンやOS、プログラム言語、エディタといった仕事道具に対して愛着を持っており、時に異常とも思える信念にもとづいて自分の使っている道具の優位性を叫ぶ方もいます。PHP言語によるフレームワークに関しても例外ではなく、○○が良いだの悪いだの、使い易いだの難いだの、速いだの遅いだのと議論されているのを(ネット上では特に)良く見かけます。
 フレームワークの思想に対する好き嫌いはあると思いますが、優劣はないと思います。
 どんなシステム開発においても大切なのはバランスです。陰陽、プラスマイナス、善悪、作用反作用、メリットデメリット、といった2つの相反する要素を内包せざるを得ず、どちらか片方だけを得るという事はほぼできません。
 自由度が高い代わりに秩序を保てなかったり、開発速度が速い代わりに実行速度は遅かったり、様々なシーンで何を取って何を捨てるか、バランスを見ながら選んでいかなくてはなりません。
 プログラム言語やフレームワークは学習コストがそれなりに必要です。将来的に、自分が選択したものが否定され、費やしてきた時間も含めアイデンティティを失ってしまう、そんな不安はありませんか?
 Laravel は多くの人が使っているという点では無難なフレームワークだといえます。
また、利用者が多いのでネット上での情報には事欠きません。サンプルとなるソースコードも必然的に多くなるため、よく解っていなくてもそれをコピペしてパラメータを変えたら希望通りに動いてくれた、なんて事もあると思います。
こんな(Web)サービスがあるといいな、というアイデアを持っていて、設計だのは良く解らないけれど、今すぐにでも何かプログラムを書いて動いているところが見たい。というケースにも Laravel は対応しやすいです(もちろん、Laravel に限りませんが)。
まとめ
なぜ Laravel を使うのですか?
- 
数(利用者数)によるパワーの恩恵を受けられる - コマンド一つである程度の枠が出来上がるので
始めやすい - 
始めやすいはつまり、捨てやすい - 始めてみてコレ好きだなぁと感じたら
続ければ良い 
明日は
明日の記事は @Takuya-Yamaguchi さんの 50インチモニターにGoogle Dara Studioでダッシュボードを出してみた です。
フォトクリエイトでは Laravel + Vue.js (Nuxt) に愛着を感じる、興味があってやってみたいという意欲のある方からの ご応募をお待ちしております。