目次
- はじめに
- Opening Talk
- セッションレポート
- 私が出席したセッション
- Closing Talk
- おわりに
はじめに
皆さんどうも。
新卒入社して3年目に差し掛かろうとして時の流れの速さに打ち震えている2年目エンジニアの urabes です。
今回、 Laravel JP Conference に参加してきたのでレポートを書いていこうと思います!
シルバースポンサーはスポンサーチケットという特別参加枠を2枠用意されるので、人生初のPHP系Conferenceを満喫してきました〜!
当日の雰囲気とセッション内容の概要をお伝えできれば幸いです。
では、Opening から紹介してきます。
Opening Talk
【ytake】
今回の実行委員長である、弊社 CTO 竹澤からのオープニングセッション。
Twitter でのふとしたつぶやきから有志が集い生まれ、「Laravel JP」と冠したイベントとして日本初の試みだとのこと。しかも1年未満で。運営メンバーなんて圧倒的やっていき力なんや…。
開始8分後に自己紹介をするなど、今回への想いと相まって笑いを届けて場を暖めてくださいました。
セッションレポート
タイムテーブルと全ての資料スライドをまとめてくださった方がいらっしゃいましたのでこちらからどうぞ。
私が聴講したセッション
■ ServiceContainer ServiceProvider入門
【前田 和人さん】
「DI に関しての説明」と「Service Provider,Servise Container の有効活用法」についてまとめてくださっています。
私自身も DI (Dependency Injection)に関して「説明してごらん?」と言われたら「ふぇ?」と固まってしまっていました。「どのように使ってどうなるかはなんとなくわかるけど、本質がわからない」「依存性の注入?依存性を注入しちゃうんだっけ?え?」などはっきりしていなかった部分がクリアになりました。
POINT
- DI = オブジェクト(インスタンスの設定で必要な引数)を外でつくって渡してあげることを指す。設定を外から渡してあげることで無駄な記述を減らすことができる。
- Service Provider = サービスの生成方法を管理している。これでサービス生成をロジックに書かなくて済む。
- Servise Container = 生成されたサービスを管理している。これで各処理毎にサービスを生成することができる。Laravel の app がこやつ。
Laravel の「なんでこの機能たちってあるんだっけ?」をとてもわかりやすいスライド構成・話され方で説明してくださいました。
新卒の子達に教える際の参考にさせて頂きます!
■ ライブラリ開発だけじゃないパッケージ開発
【後藤 知宏さん】
Laravel のパッケージ機能を活用することで、「サービスの各機能の処理・ディレクトリ構成をスマートに管理してこうぜ。それにはこんなメリットがあって方法をいくつか紹介するぜ」というお話でした。
POINT
- アプリケーションの根本的な制御は app で。各種ロジックはパッケージで分業・分割することでプロジェクト管理も明瞭になり、後発的な構成変更にも柔軟に対応できる。
- パッケージ開発の手始めに、まずは名前を切り出し、独自の name spaseを作り出すことから。
前のセッションの ServiceProvider の話の後に聞いてみて、スッと入ってきましたし、後に紹介する後藤 秀宣さんの「抽象化って何?」のセッションにも繋がる部分があり「おおお」ってなりました(語彙力)。
パッケージ開発を活用するにあたって、app ディレクトリ外でコードを書くことが肝になってくるなぁと考えさせられました。
■ ランチセッション:エキテンと Laravel と私
【ブライソン イアンさん】
ランチチケットも配布され、お昼ご飯を美味しく頂きながら聴講しました(最後に写真もあげます)。
「店舗クチコミ・ランキングサービスであるエキテン」さんの、そもそも Laravel に乗っていなかった、レガシーシステムと立ち向かった、新卒1年目のイアンさん(開発と社内広報を担当)目線での戦記になります。
話すテーマも面白かったのですが、トークがとにかく上手すぎる…今回の Conference で一番の笑いと盛り上がりだったのではないでしょうか。
今回マイクロサービス化を取り組むにあたって学んだことや 大変だった原因とその為に Docker や CI ツールなど新しい技術を用いてどう改善されたかを語ってくださいました。
また、社内広報として、エンジニア以外への伝えることの難しさなども赤裸々に語ってくださいました。サービスとして今後運用する上で大変且つ重要な作業であり、その上時間も限られている。成果が見えにくい事からエンジニア以外への説明が難しく、どうやって理解を得たのか等々、大変面白い内容を聞けました。
新卒でしかもこれが初登壇…とてつもない新卒が現れたな本当…。
■ Webアプリケーションが今こそ知るべき、RDBMSのパフォーマンスチューニングの勘所 ~ 未踏の速度を目指して~
【曽根 壮大さん】
「RDBMS の基本的なアルゴリズム」から、「Join や INDEX についての説明」、その上で「それらを意識した上でフレームワークを利用していますか?」という問いかけのセッションでした。
POINT
- Join はハイコストな処理だが、INDEX と併用すれば高速になる。
- フレームワークに依存しないで、最適な設計を模索していこう。
Join のカテゴライズとして Nested Loop Join, Hash Join, MergeJoin について の説明もありますが、曽根さんのブログに GIF でわかりやすくまとめられているので良かったらご覧になってください!
■ Laravel デプロイ戦略。VPSからDocker、Kubernates、サーバレスまで
【鶴島 剛さん】
皆、様々な規模やステージがある為、この方法が良いよという紹介では無く、「デプロイのLaravel 職人にとって、理想的なデプロイ方法」というスコープでのお話。
Laravel 職人にとって理想のデプロイに辿り着くまでには様々な問題があります。その為に「早期にオートスケール設計の対応を見据える事」「その為にはどうすべきか」Laravel をオートスケールさせるポイントの紹介をしてくださいました。
また、セキュリティに関してもアドバイス。以下の点がよく見られるそうです。必見 ?
AWS
- IAM アカウントを使うこと。
- セキュリティグループの設定を忘れないこと。
- ストレージの暗号化など後から変更できないものも AWS は多め。
などなど当たり前の様な事項ですが、割と見落としがちなので注意が必要。
Docker
- 脆弱性スキャナをつけよう。GCR (Google Platform Registory)は対応済み。AWS ECRも対応予定。
- 野良コンテナを本番に使わない。信頼性のあるものを使おう。
- ベースコンテナは定期的にビルドを。
完璧余談ですが個人的に、最近勉強し始めた AWS の拙い知識が理解に活きたのと、Docker のローカル開発で Docker-Compose を用いた手法が合っていたことが地味に嬉しかった。
■ Laravel で学ぶ Web アプリケーションチューニングの基本
【富所 亮さん】
WEB アプリ全般に言えるパフォーマンスチューニングについてのお話でした。
基本的なお話でしたが、再確認をすることで本来チューニングする際に忘れがちな「やるべきこと」を明確にしていこう、というテーマでした。
POINT
- あなたの思う「遅い」は主観。
- 「推測するな計測せよ」。何が原因で、どう遅くなっているのかコンテキストや数値で究明すべし。
- 「遅い」の原因にあたりをつけるのではなく、WEB アプリ全体のフローとネットワークを理解して徐々に泥臭く追い込んでボトルネックを特定すること。
パフォーマンスチューニングをやる上で、大事な思考プロセスを紹介して頂きました。
「推測するな計測せよ」その通りですよね。エンジニアだけじゃなく、関わる人間皆意識しておくべきマインドだと思いました。
■ 抽象化って何?
【後藤 秀宣さん】
そもそも「現実世界における」抽象化から考え、それにあてがい、「プログラミングの世界」での抽象化とは何か?を「数読(ナンプレ)」のコードを題材に説明して紐解いてくださいました。
POINT
- 抽象化には抽象度のレベルが存在する。
- 抽象化すると、特徴の数が少なくなり、対象の量は多くなる。
- 抽象化には指針が必要。
- 適切な命名
- 抽象度の統一
- 狭い範囲で抽象化すること
現実世界での抽象度のレベルを揃えないと分法が成り立たない例はとてもわかりやすかった…。今まではぼんやり抽象化と言っていましたが、今回で抽象化させる意義を知れたので、今後は指針をもって設計していこうと思います。
■ LT大会
総勢10名の参加者が、Laravel について様々なアプローチの内容で LT をしてくださいました。資料はまたしてもまとめて頂いたこちらからご覧ください。
どの発表も5分という短さなので Laravel に触れて「何を伝えるか」テーマがかなり明確で印象強かったです。
個人的に、Laravel で始めるテストに関しての発表や、研修システムをつくった話、発表のテクニックとして Laravel のクイズに振り切った発表などが参考になりました。
Closing Talk
【ytake】
最後に竹澤さんからの挨拶で締めて頂きました。
「Twitter や PHPer Kaigi での呼びかけで集まってくださった方々、そしてスポンサー各社や参加者の方々のお陰で、当日参加者334名というここまで大きな会を開くことができました。”奇跡の Conference” です」
拍手が起き、皆心のなかで次回開催のお知らせを心待ちしていた最中なんと、
「次回開催予定は今のとこありません!!!」
なんと最初で最後らしい…。良い会にすべく一度きりの理由もあり、来年度以降の実行委員に「我こそは!」な方がいらっしゃれば絶賛募集中だそうです!
その他にもイケてたポイント
初学者も大歓喜なコーナーの充実
初学者向けのワークショップや Speaker と直接話せるコーナーなど、様々な層が楽しめる仕組みになっていた。
スタッフさんが控えめに言って最高
司会進行がとてもスムーズで、困った際に誘導の方々から声を掛けてくれたりと優しみを感じました。
気持ちがよかったです。
コーヒー無限に飲める
ホットとアイス両方ありました。
ノベルティ
色々入っていましたが、その中でも手拭い(オレンジ+白)が「”日本の” Laravel の Conference」感を全面的に出していて想いも感じられ最高に cool だった。
感じられる食へのこだわり
ランチチケット対象者に配られた、ランチスポンサーであるデザインワン・ジャパン様から差し入れて頂いた「今半のすき焼き弁当」と、「懇親会のご飯たち」とどれも美味しく気合を感じました。一言で最高でした。
懸賞品の書籍を掛けた勝ち残りじゃんけん大会の様子。めちゃくちゃ盛り上がりました。勝ち上がるコツは途中までホストが宣言して出す手を信じることと、いつ裏切ってくるかを読むことです。因みに私は初戦で負けました。人を信じるところから出直してきます。
懇親会LT大会の様子。ここもまた笑いが起きたりなど、大変盛り上がりました。
「エモい告知」や「ソシャゲで使うLaravel」「PHPでJavaを動かす」「Laravel3に入門してみる」「Shift で Laravel をバージョンアップ」など、エグいくらい geek な内容なものばかりでした。
おわりに
本 Conference は一参加者としても、もの凄いパワーを感じさせられました。
運営・参加者自体に勢いを感じたのもそうなんですが、「Laravel」という共通言語に対し、熱い想いを持った有志の方々が短期間で立ち上げ、そこに様々な職種や PHPer 、遠方から遥々いらしている方
、なんなら普段はあまり PHP を使わない方など background の異なる方々が様々な想いで一斉に集っていました。なんともエモい。
今回を機に自分も何かの技術について一同に集まり、繋がれる場づくりをしたいと感化されました(まだなにも決まってなく、やりたい気持ちだけ上昇中)
そんな風に思えたのも、運営陣の気遣いある運営のお陰なのでとても参考になりました!
運営コアメンバーを始め、登壇者の方々、スポンサーの各社や当日スタッフの皆さま、当日交流してくださった参加者の皆さま、最高の場をありがとうございました!お疲れ様でした!
初めて参加した PHP 系の Conference が Laravel JP Conference で良かったです。