【シューマイ】Tech Lead Engineerから最新技術を学べ!Laravel編

【シューマイ】Tech Lead Engineerから最新技術を学べ!Laravel編

2019, Nov 13

アジェンダ

最近はjekyllのカスタマイズにおネツな野村屋ごろうです、お世話になります。
いつものように、その場で書いて即上げる!を地でやっていくんでクオリティは多少怪しいのはご愛嬌。

以下、公式ページより開催概要です。

今回もお誘いいただいたので当日に申し込んで飛び込む、というスタイルです。 残業になったら大変なのと、connpassの罰則がきつくなりすぎておいそれと申し込めないんですよ……。 なので、ギリギリまで募集してくれているイベントさんの存在はすごくありがたいです。 シューマツワーカーさん、ありがとう!

【2019/11/14追記】謝辞

イベントレビューを自称するには、ちょっと日本かぶれすぎました。 本文をGoogle翻訳なりに通すと支離滅裂すぎて泣きそうになったので、対外的に意識して内容をちょっといじってます。

概要

イベントページの公式サイトより。

"シューマイ"とは?

本イベントは、“世界をテックリードする日本人エンジニアを多く輩出する”をビジョンに、 日本のエンジニアのレベルの底上げを目指すコミュニティです!
最新技術・ハイレベル技術に特化したエンジニアコミュニティを形成し、勉強会・情報交換を行う機会を多く作る。
それが、『シューマイ』コミュニティ。"https://shuuu-mai.connpass.com/"

イベント概要

普段CTOやリードエンジニアクラスとして活躍されている3名の方に、
Laravelだけでなく、「Laravel×〇〇」をテーマに、コアでマニアックな技術について熱く語って頂きます!
最後に懇親会の時間も設けております。※懇親会では本物のシューマイ出します!!

当日ご参加の方にはイベント限定ステッカーのプレゼントもあります。皆様のご参加お待ちしております!

(中略)

こんな方におすすめのイベントです

・『シューマイ』コミュニティのビジョンに共感できる方"https://shuuu-mai.connpass.com/"
・すでに開発現場でLaravelを駆使している方
・CTOやリードエンジニアなどのスキルを学びたい方
など一歩上をいく技術に興味がある方にオススメです!!

頂いてるものをそのまま引用しています。

Laravel x 管理画面

手島氏スライド 登壇されたスピーカーの手島氏のお話は調べればでてくるような内容なので、こちらでは敢えて取り上げません。 ここだけの話?的ですが、メインは海外とのことで、一度は海外に飛び回る生活をやってみたいですね!

管理画面の実装工数をどう減らすか?

Laravelにも管理画面ジェネレーターが存在します。 それぞれの特徴とともに、会場でのプレゼン手法についても着目してみました。

なんと、いきなりライブコーディング!

  • Laravel Rocket1
    • いきなりライブコーディング式!度胸あるなぁ、と素直に感心しました
    • git cloneしてDB接続(なければ作る)してコマンドちょいちょい叩いてできた!管理画面が。やばい。
    • テーブル設計だけで詰みそう。使いまわしができるやつを探すか作るかしておく
    • バカ正直に打ち込むとなんかコケるらしい、該当箇所を消せば動くけど、実用段階ではない?
  • Laravel admin
    • ドキュメントが豊富、というか真っ先に選択肢に上がるやつ
  • Voyager
    • 新進気鋭のライブラリ、時間がなかったのでさわりのみ
  • Laravel Nova
    • ちょっと微妙らしい、有料なので勇気が要るなぁ
  • Laravel API + Nuxt
    • 最近ポピュラーになってきた、カスタマイズコストが高い(かも?)

参考:Laravel adminのストロング・ウィークポイント

このように、どれにも長所・短所は当然あるので、思想を汲み取って案件に採用していく事を考えましょう。

所感

なんかCTOっぽいというか、技術系の勉強会としては正統派な印象です。 これぐらいの雑感というか雰囲気に慣れている私としては非常に好感を覚えました。

Laravelアプリケーションを倍速にするためのイロハ 〜データベース編〜

中田氏スライド 登壇されたスピーカーは中田氏。エンジニア歴4年と、びっくりするぐらいスピード出世?というよりはできる人がどんどんやっていった感があります。 Laravelというよりはフレームワークや障害対応の考え方、対応をメインに。 「あ~、昔こんな事やったわ~」と懐古的になるお話でした。

高速化、というテーマでしたがどちらかというと障害対応や再発防止がメイン。 高速化はあくまで対応手法の一つかな、という印象です。 一番最初にするアプローチとしては高速化はアリだと思います。

その上で、しっかりと業務として成立させるならプロセス監視をするところまで考える必要性を感じますね……。 あくまで、発表時点というか内容について勝手に感じた問題点なので、既に対応済みかも知れません。 この後で着手すべき施策も多そうですが、ここでアウトプットされているぐらいなのでナレッジ管理は既にできてそうな印象です。

DBメンテナンスの話

Laravelで貼る場合のお話。正直、この辺りはrailsに分があります。2 もちろんLaravelでもできるし、対立煽りをしたいわけじゃないんですが良いものは良い、というお話をしておきます。 インデックスを最適化するとか、クエリを最適化するとかそういう話をしてくれるのか、と驚きました。 この辺りは基礎的な部分ですが、アプリ側でDBの面倒を見てくれるものも多いので、あまり意識されていないのかも知れません。3

全体的に易しめな内容です。これから頑張る人にはとても良いですね。

クリーンアーキテクチャの考え方に基づく Laravel との付き合い方

岡田氏スライド 登壇されたスピーカーは岡田氏、公式サイトによるとエンジニア歴(着任?)は3年と、またまた挑戦的です、非常に良い! 本当に3年か?と思うぐらい内容がしっかりされているので、きっとエンジニア歴ではなく着任が3年ということかなと思います。

()Laravelカンファレンスなんてあるのね、さすがやでぇ。

オブジェクト指向の話

マジか、と思ったのがこれ。外部が来る無料の勉強会でオブジェクト指向の勉強をする事ができるとは思わなかったです。 多くの有料スクールが頑張って教える単元です、勉強会でも聞けるなんてお得すぎやしないか?

こういうのをIT講師の立場の私が言うと大問題なんですが、勉強会スタンスだと聴衆が分かるまで付きっきりで解説したりはしません。 参加者にもレベルを求めるので、素人お断り4な雰囲気に気圧されてしまうかも知れません。 スクールは受講生自身がきちんと理解できるまで付きっきりでやる事が多いので、スキル感に自信がない方は門戸を叩いてみても良いかも知れません。

依存関係の変更

ユースケース

リファクタリングをやってる時にギャオる5やつですね。 クリーンアーキテクチャーを考える場合、システムの変更に強い、というのは前提です。 これを見落とすと後で変更箇所が多すぎて悲鳴をあげます。ギャオギャオ。

大体変わるのはシステムではなく運用だったりするのがネックですね……。 具体的には法律改正など。私も他人事ではないかも知れない。

なぜLaravelを使うのか、というお話

最後の発表で出てくる内容か!と思ったのは正直にお伝えしておきます。 聴衆も知っている前提で参加しているので掘り下げられませんでしたが、単純に驚きました。

→ちょっとこれは語弊がありましt。  見直すと本システムにおいてなぜLaravelを使うのか、というものですね。撤回します。

Service Providerの話

雑にいうとコンパイラ。 独立性を高めて作ったソースをいい感じにがっちゃんこ(結合?統合)する仕組み。 ちょっと駆け足だったのでまとめきれていないが、スライドが公開されているのでそちらを参照のこと。

まとめが超わかりやすい!

重要な単元をもう一度スライドとともに振り返る、という時短テク・スライド増かつ有意義なパワーアプローチがありました。 あれは真似していきたい!

パネルディスカッション・座談会

実際のSlido画面

リアルタイム性を重視しているためか、質問が断片的でやりにくそうでした。 一番最初にシューマイさんならではの「Slidoの使い方のご案内」をされた方が良いかも知れないですね。 参加しているユーザーはプロのデベロッパーですが、質問のプロではないのです……。 私が思うに、Twitterのような使い方をされているような気がしますので、ここの差別化をお話するところからでしょうか。

登壇って楽しい?

これは私も興味深かったので取り上げます。 登壇に参入障壁を感じるなら、まずは手元のメモを外向けに表現を書き換えてアウトプットをする、というのは大事なことですよ。 こういうのも場数ですが……やらないよりはやって成長していきます。

技術広報やインフルエンサーをお求めの企業さま、ワタシやりますよ! 登壇でも技術検証でも導入でも!呼んでください。6

なぜLaravel?Railsじゃないの?

これは聞きたかった! 世界を見るとPHP、特にLaravelが多いらしい。場所によるのでは?という気がします。 Rails派とPHP派(CakePHP?)の確執を垣間見た気がします……。

どちらが良い、というよりはどういう要件にどの技術を採用するか、という話だと思いますよ。

全体所感

Laravelの話が半分、それ以前にアーキテクトな話(技術要件、設計)という配分でした。 イベント名で得しているのか損しているのか分からない感がありますが、概ね幅広い層にアプローチされている安心と安定の内容でした。

表彰、じゃない登壇者ステッカーのお渡しを撮影しそこねましたorz

【2019/11/14追記】懇親会の様子

シューマイが出ました。 レンチン7の音が公演中もちょいちょい聞こえていたので、準備会のスタッフさんが頑張ってくれてるんだなぁ、と感じる瞬間でした。 集合写真でシューマイのSを作るのがここでの決めポーズ!

他の参加者さんも今現場でバリバリやってる方から、これからエンジニアに転職したいと思っている方など色々いらっしゃるようです。 IT講師業なんてやってる変わり種はどうやら珍しかったようで、普段どういう生徒さんにどういう事を教えているのか、今後のトレンドのお話などさせていただく機会がありました。

ちょっと宣伝

Qiitaスライドなどを使っている方にはあまり目新しい機能ではないですが、実はこのブログ(GitHubPages)もjekyll + RevealJSを使っているので記事をスライドに書き替えるのは非常に簡単です。 昔書いた記事を講演会用にフォーマット修正して登壇する、という事ができます。

普段からまとめているインプットをまとめるだけでスライドになる仕組みを整えておくとLT会への参入障壁がひとつ消えるのでおすすめです。

注釈

  1. 【補足:Laravel Rocketの所感】環境構築は罠があるので、資料がないと使う前に挫折しそう。とはいえ、ちょっと頑張るだけでSPAに対応した管理画面ができるのは胸熱。 

  2. 【DBインデックス】この辺は個人の感想です。LaravelやRailsのバージョンを引き合いに出していないので、今後変更される可能性があります。 

  3. 【雑記:DBクエリ】インターネット老人会やオッサンエンジニアでは常識感がありますが、今の若い子はクエリがどうとかあんまり気にしていないと思います…。そもそもそんなクエリがどうとかっていう話をアプリサイドで気にしないですし、なんで気にするの?って思っちゃいますね……。 

  4. 【素人お断り】初心者ではないです。素人と初心者は違うのです。 

  5. 【ギャオる】GYAO!動画サイトですね。   ではなく、吠える時の声をいいます。怒っている様子ですね。 

  6. 【呼んでください】呼んでください。 

  7. 【レンチン】電子レンジで温める・焼き終わった後のアラート?サイン音が「チン!」と鳴っているように聞こえるから。いっつじゃぱにーずかるちゃー?日本人ならオッサン世代じゃなくても通じるよね……?