はじめに
フォトクリエイト
さんでチーフエンジニアをしている @imunew です。
この記事は Photocreate Advent Calendar 2018 の 16日目 の記事です。
Photocreate Advent Calendar 2018
には他にも記事を書いていますので、読んでいただけますと幸いです。
- リモートワークの業務委託だけどチーフエンジニアになりましたという話(Photocreate Advent Calendar 1日目 )
- ららびゅう座談会を開催しました (Photocreate Advent Calendar 5日目 )
本記事では、先日フォトクリエイト
さんで開催したららびゅう座談会
のトークと座談会の内容の中から印象に残ったところ注目したところなどをピックアップしていきます。
SCOUTERとLaravue
@kotamat
SCOUTER
社 CTO @kotamat
こと松本 宏太
さんのトークからピックアップしていきます。
スライドはこちらです。
Nuxt
をSPA
モードで使う
Nuxt
にはSPA(Single Page Application)
モードとUniversal
モードがあり、Universal
モードには、Vue Server RendererによるSSR(Server Side Rendering)
機能がありますが、SPA
モードにはありません。
@kotamat
さんのトークによると、SCOUTER
さんではどうやら可用性重視ということで、SPA
モードを選択しているようです。
その理由については、@kotamat
さんの『で、NuxtのSSRっていつ使うの?』あたりがヒントになりそうです。
Vue SSR ガイド
の「どうして SSR なのか?」も参考にして、私なりにSSR
のメリット・デメリット(≒ SPA
モードを採用する理由)をまとめると以下のようになります。
SSR
のメリット
-
SEO
の向上 - ネット環境が遅い、端末のパフォーマンスが低い場合にページの表示が(
SPA
と比較して)速くなる
SSR
のデメリット
- 開発上の制約を受ける(ブラウザ固有のコードは動かない、
SSR
用の実装が必要になる、など) - 環境構築、運用(死活監視など含む)が複雑になる
- サーバーの負荷(CPUなど)が増える
Laravel
は最後のフルスタックフレームワーク
Laravue
の今後という部分で、Laravel
を最後のフルスタックフレームワーク
と称していたのが印象的でした。
「最後の」という部分に込められた思いを私なりに解釈してみるとこうなりました。
- 次に流行るフレームワークは、フルスタックではない
- マイクロサービス化が加速すると一つ一つのサービスは小さくなる
- 全部入りのフレームワークはしだいに不要になっていく
それを踏まえて、下記の「インフラ+フロント+サーバーと技術横断的にみて設計ができるようになるか?」という部分を読み返すと、妙に説得力あるなと思ってしまいます。
Laravel本とコミュニティの話
@kurikazu
『PHPフレームワーク Laravel Webアプリケーション開発』の著者の一人、@kurikazu
さんこと栗生 和明
さんのトークからピックアップしていきます。
スライドはこちらです。
Laravel答えるタイム
Laravel答えるタイムとは、@kurikazu
さんがディップ
さん社内の共有スペースにて、Laravel
についての質問に答える時間のことだそうです。
『PHPフレームワーク Laravel Webアプリケーション開発』の著者に直接質問できるなんて羨ましいと思うと同時にそれだけでconnpass
でイベントできそうだなと思いました。
Laravel Meetup Tokyoに@freekmurze
さんが参戦した件
スライドではさらっと「Freekさんのトーク」となっているんですが、なんでもLaracon EU
という大きなイベントで登壇するようなベルギーのエンジニア@freekmurze
さんから、下記のようなメッセージが届き、Laravel Meetup Tokyo
に参加したというすごい話でした。
旅行で9月は東京にいるんだけど、よかったら Meetup できないかな?
Laracon EU で採択された内容を話したい。ただ、僕は日本語が話せないので英語で話すことになると思うけど
ちょっとググったら、@localdisk
さんのLaravel Meetup Tokyo Vol.8 にいってきました - Innovator Japan Engineers’ Blogが見つかりました。
こちらに詳しい経緯や当日の様子などが書かれています。
Laravel
本のこぼれ話
スライドにはありませんが、幻の10章
の話は大変面白かったです。
幻の10章
が何であるかは下記の記事で分かります。
「PHPフレームワーク Laravel Webアプリケーション開発」を読みました - Qiita
A startup meets Laravel + Vue.js
@nunulk
QiitaのLaravelタグ
ユーザーランキング1位の@nunulk
さんこと松本 弘嗣
さんのトークからピックアップしていきます。
スライドはこちらです。
水平方向(フロントエンド/バックエンド)の分担より、垂直方向(機能)の分担の方が効率がいい
これは、「スタートアップとの相性」の中にあるスライドです。
「水平方向(フロントエンド/バックエンド)の分担より、垂直方向(機能)の分担の方が効率がいい」という部分がはじめはどうして?と思いました。
しかし、これは単能工より多能工がいいという話なのかと視点を変えたら妙に腑に落ちました。
多能工については、下記の記事などが分かりやすかったです。
(Laravel
+ Vue.js
の)代替案
@kotamat
さんの「最後のフルスタックフレームワーク」の話とも合致すると思うんですが、Nuxt.js
のようなSPA
を採用すると、クライアントとサーバーが分離して、サーバーサイドは軽量なマイクロフレームワークに代替可能であるという部分が興味深かったのと、@nunulk
さんが座談会でも、「Laravelは遅い」とおっしゃっていたのが印象的でした。
座談会
座談会では参加者から以下のような質問があがっていました。
CIにおけるテストと静的解析の話
- テストを実行させると、API ドキュメントが自動生成されるようにしている
-
SCOUTER
社では自動テストはCIで実行していない(20分とか時間がかかるから) -
ディップ
さんは割とE2Eテストを書いている -
SCOUTER
さんはlarastan
からあがってきた指摘事項をreviewdog
を使って、プルリクのコメントにするようにしている
Laravel
+ DDD
の話
- 詳しくは
Laravue
勉強会の資料を参照 - ディップさんでよく使うのはリポジトリパターン
-
Laravel
はDDD
に実は向いていない?- クラス階層が深くなると遅くなる
監視ツールの話
Laravel
とGrahpQL
の話聞きたい
- まだ、
SCOUTER
社では使っていない(@kotamat
さん個人で試している状態) - Laravel Lighthouseが出てきてだいぶいい感じ
- N+1問題など課題はありそうだなという印象
インフラの話
- ディップさんはオンプレ中心
- クラウドへの移行を考えてはいるが、全面移行は難しそう
- ユーザーと運用するエンジニア双方にとって(クラウド移行して)メリットのあるサービスを優先的に移行したい
- SCOUTER社は、AWS、構成管理はTerraform使っている
- ステージング環境と本番環境が乖離しているので、構成を見直している
-
Nuxt
はSPAモード中心で極力SSR
しない主義なので、Node.js
サーバーは運用しない
工数の見積りが大きくずれたことはあるか
- 今までやったことないことやるとずれる
-
@nunulk
さんの経験では、スタートアップでは正確に見積をしないことが多い
おわりに
フォトクリエイトさんの某サービスをNuxt.js
とLaravel
でリニューアルするぞというタイミングで、この座談会を開催できたのは、かなり良かったと思ってます。
登壇していただいた@kotamat
さん、@kurikazu
さん、@nunulk
さん、参加していただいたみなさま、本当にありがとうございました。
実は、もうすでに次の企画が動いていまして、そろそろconnpass
で募集開始しますので楽しみにしていてください。
フォトクリエイトさんではLaravel
やVue.js
を使ったアプリケーション開発に興味のある方からの ご応募をお待ちしておりますとのことですので、よろしくお願いします。
ではでは。