インフィニットループ 技術ブログ

2023年06月28日 (水)

著者 : m-yamagishi

PHPカンファレンス福岡2023 に登壇してきました! #phpconfuk

こんにちは。やまゆです。

2023年6月24日(土) に福岡で開催された PHPカンファレンス福岡2023 に登壇いたしましたので、レポートいたします!

PHPCONFERENCEFUKUOKA2023

トークはプロポーザルを出して、運営がその中から選出するいつものスタイルだったのですが、今回は結構はりきって熟考しました。何故なら 福岡(九州)には一度も行った事がない => 初めて福岡に行けるかもしれない! という単純な理由です。

秒間 10,000 リクエストを "簡単に" いなすゲームサーバーを Laravel で作る設計

今回のテーマは弊社仙台のいがらし先生にもご助力頂き、魅力的なプロポーザルとすることができたおかげか、倍率が非常に高い中での選出をいただきました!この場を借りて感謝申し上げます!

もちろん今回も弊社の嬉しい制度である「カンファレンス参加支援制度」を活用しました。ありがたい限り!

※カンファレンス参加支援制度
技術系のカンファレンスへ参加する場合、条件を満たせば交通費・宿泊費を会社が支給する制度です。
支給には参加申請と審査が必要になりますが、新しい技術の開拓、人脈の形成等社内へのフィードバックが期待できるものには利用を推奨しています。
また会社として重要性の高いカンファレンスへの参加をお願いする場合もあります。
こちらに関連してPHPカンファレンス等大きな技術イベントには会社として積極的にスポンサードしています。(社員のみ対象)

https://www.infiniteloop.co.jp/recruitment/benefit/

全体の感想

完走した感想ですが、「参加者・運営スタッフ等関係者全員の熱量の高さを実感した」というのが一番です。2日前から関連イベントが非公式で開催されて集まっていたり、前日も複数のイベントが行われ、当日は過ごしやすい天気の中会場は大盛り上がりでした!

私はというと、初めての福岡にワクワクしつつ、「美味しいものをたくさん食べて帰るぞ(たくさんの人と交流するぞ)」という強い意気込みの下参加して、本当にたくさんの得られたものを札幌に持ち帰ることができたと実感しています。

具体的な細かい感想に関しては、ほとんど Twitter で実況していたのでそちらをご覧ください!で済ませてしまえるレベルではありますが、その中から思い出深かったものを抜粋します。

思い出(前日)

あんまり暑くないぞ!が第一印象でしたね。

福岡の美味しいものと言えばなんだろうということで、一つ「うどん」があるっぽかったので、博多駅の中にある適当なうどん屋をピックアップして食べてみました。あれ?凄くやわらかい、スルスルいける…!そして天ぷらが美味しいのなんの…。海老天がプリップリで最高でした。

その後は時間が余ったのでかるーく観光しようということで、博多から少し移動して天神へ。

偶然にも Splatoon3 のイベントをやっていたので見てきました。ポップアップショップも展開されていたので、いくつかかわいいグッズを買いました。ラッキー。

折角前乗りしたということで、 (非公式)PHPカンファレンス福岡 前夜祭 というイベントに参加してきました!博多駅すぐそばにある LINE Fukuoka株式会社様に場所をお借りしていて、とてもオシャンなカフェスペースでした。

1部はインタラクティブラウンドテーブルという形式で、参加者で雑にテーブルを囲んで、軽く自己紹介してから特定のテーマに関して会話しようぜ、みたいなターンがありました。3回くらいやったんですが、テーマそっちのけで自己紹介から派生した色んなことを話すことができました。 PHP 2年目で色々学びたい方から Perl や Java つよつよ勢など幅広い参加者とお話できて、これは仕事しているだけでは得られない体験だなーと思いました。

2部はLTだったんですが、人数の関係で空きが出ていました。なので超突発的に社内で公開した秘密のスライドを使って発表することに!ウケが良かったので自信につながりました。他の方のLTもかなり面白かったです!

そしてその後は博多の街へ!いやぁ~、前日なのに本当に面白い話がたくさん聞けてマジで参加して良かったです。食べ物もおいしかったぁー。

思い出(当日)

そしていよいよ当日!ホテルから徒歩5分の所に会場があって便利。博多駅からも近かったです。

伝えたい!オフラインのカンファレンスに参加するメリットと参加してから200%楽しむために実践してほしいこと by kotomin_m さん

同郷である、ことみんさんのセッションから見ることにしました。せっかくのオフラインカンファレンスは自分が楽しんでなんぼなので、極意を伝授していただくことにしました。フローチャートの資料がUMLなのがエンジニアっぽくて好感持てました。
会話の深掘りの仕方はカンファレンス問わずどこでも使えるテクニックなので、非常にためになりました。

フレームワークが生み出す負債や複雑さに対して、PHPUnitと付き合っていく by stwile さん

ユニットテストって、「実装したメソッドをテスト」したくなりますよね。でもそれって正しい表現ではなくて、「1つの機能単位をテスト」すべき、というのがこのセッションの要約になるかなと。結局モックしたらモックした部分の振る舞いが変わった時の保証ができないので、なんでもかんでもモックすると「カバレッジはあるけど機能を保証できないテスト」が生まれてしまうリスクがある、という話でした。興味深かったです。

育成力 – エンジニアの才能を引き出す環境とチューターの立ち回り – by Y_uuu さん

こちらは株式会社Fusic さんのスポンサーセッションとなります。採用された新人をどうやって育成するかを紹介してもらいました。

  • 受託開発に必要な能力を研修でどうやって得てもらうか
  • 様々なスキルセットを持っている新人のそれぞれをどうやって調整するか
  • チームや会社のカルチャ-をどうやって伝えるか
  • 一人ではなくみんなで開発する、周囲を巻き込めるエンジニアにできるか
  • コミュニケーションが上手に取れるようにできるか
  • やりたいことをやってもらうのが一番なのでどうやってもらうか

といった重要な項目を理解することができて、私が丁度気になっている部分だったので非常に助かりました。

脆弱性もバグ、だからテストしよう!と唱えて8年が経ちました by cakephper さん

こちらは VAddy(株式会社ビットフォレスト) さんのスポンサーセッションとなります。脆弱性診断ツールの VAddy がいかに生まれ、いかに自社サービスの展開として苦しみ、そして今うまくいくようになってきたのかを克明に紹介されていました。自社サービスは本当に大変だ…。
あえて母数を増やす(=新規登録数をKPIとする)のをやめて、今いるユーザーの話にもっと耳を傾けるという戦略に変えて効果があったという所に驚きがありました。

トークセッションの合間

セッション間は10分ほどの空き時間があるので、そこでスポンサーブースに立ち寄ったり、コーヒーやウーロン茶などを飲みながら登壇者と雑談できる Ask the speaker コーナーがありました。そこで合間合間に登壇者含め様々な人と会話することができたので、非常に楽しかったです。前回の Babylon.js 勉強会 vol.2 で好評だったアイコンを顔にくっつけていたので、「やまゆさんですか?」と話しかけられることも多かったです!みんなもこれやった方が良いと思います!

お昼

会場の向かいに有名らしいラーメン屋さんがあるのですが、めちゃ並んでて1時間で帰ってこれる気がしなかったので、近くにある小さな中華料理屋で日替わり定食食べました。おいしかったです。

あなたのPHPアプリ、ログはでてますか?あるいはログをだしてますか? by uzulla さん

アクセスログやエラーログ、アプリケーションログって、実際見ないですよね。わかる…。そしてなんとなくアプリケーションの中に Log::info('ユーザーを新規登録しました'); のように雰囲気で書いているのではないかと思います。しかしそれじゃダメやろ!ちゃんと観測(Observabilityとか最近よく聞きますよね)しよう!そして観測できるための仕組みを作って、観測した時に意味が理解できるような出力内容にしよう!という、当たり前だけど大事なことの復習ができたなと思います。ログレベル、夜中起きないといけないレベルなのか、別に翌営業日でもいいのか、なども重要ですね。

Laravel x Inertia.js 「現代のモノリス」によるお手軽SPA開発 by tutida さん

私のチームでも Inertia.js を使用していますが、いまいち知名度が高くありません。実際手軽に繋ぎこみができる便利なライブラリなのでここで紹介されるのはとても良いなーと思いました。後述の Laravel PHP から TypeScript への型自動定義と合わせるとさらに効果的に記述できるようになるんじゃないかと思います。

秒間 10,000 リクエストを “簡単に” いなすゲームサーバーを Laravel で作る設計 by やまゆ

あ、ここで私の登壇です。30分枠でしたが、リハーサル段階では40分かかっていました。本番は頑張って早口+若干はしょることによって、30分ぴったりにおさめることができて良かったです。
ゲームサーバーに関わる話って、ゲーム業界側(CEDECなど)では日常的ですが、 PHP カンファレンス側ではあまり話されてこなかったので、皆さんとても興味を持ってくださったみたいです。自分では当たり前にやってきたことなので、そこの意識の違いがあるんだなあ、というのに気づかされました。
DDD-like Driven Design というワードを使いましたが、本当に今まで名前はなかったです。設計側の図がわかればそれで十分でした。しかし、発表するにあたってなんかパンチを効かせたいなーと思って、思い付きでネーミングしました。今後は使わないかも?w

Eloquent を使わないという選択肢も比較的珍しかったのではないかと思います。使いたいなーと結構悩んでいたんですが、最終的に使わない、自作しちゃえ!で自作する結果となりました。
Eloquent を使わないという選択をするのであれば、 Laravel でなくてもよいのでは、という声もありました。確かに別のフレームワークの選択肢もあります。しかし、日本語含め資料の多さ、社内・世界における実績、そもそも非常に優秀な DI-Container や Testing サポート周りの実装など、様々な観点からやはり Laravel は良いものだという結論に私はなりました。ここでは語りませんでしたが、使うと色々と面倒になるリスクのある機能もあります(ファサ…やマクr…など)。しかし、なのであればそういった機能は使わなければよい(規約やガイドラインで制限する)だけなので、実際十万行以上のコードベースになっていてもほとんど問題になっていません。 Laravel は いいぞ。

ということで、途中で話していた負荷試験のフォローアップ記事なんですが、2,3回程度に分けてのちほど投稿する予定です。お楽しみに!

登壇後は Ask the speaker コーナーで色々とおしゃべりしていました。来てくださった方々ありがとうございました。本当は次のセッションも聞きたかったのですが、おしゃべりするのが楽しくて長居しました。

ソフトウェア設計がプロジェクト管理にどのように影響を与えるか by Hideki Kinjyo さん

最近の私の関心はプロジェクト管理に向いています。良質な設計やテストなどの内部品質が中長期的なコスト削減になる、という話は様々な場所で聞きますが、じゃあ具体的にどう影響するのか?という部分が明確になっています。私が丁度言語化に苦しんでいた場所なので助かりました。

LaravelからTypeScriptコードを自動生成して効率良く型安全なフロントエンド開発を目指す by daiki7note さん

https://phpcon-fukuoka-2023.vercel.app/

Model や routing はバックエンドとフロントエンドで同じ型で取り回すことになります。じゃあ TypeScript 側は PHP のコードから自動生成すれば良い、ということでライブラリを自作された様子。私も書いてて「両方に同じような定義するのめんどくさいなー」と思っていたので丁度良かったです。

LT大会

一瞬で駆け巡った今回の LT でした。特にいがらし先生のしゃべりが2.5倍速くらいで猛スピード。どの LT も楽しく聞くことができました。

懇親会

SAPPORO の文字を見かけることができて嬉しかったです。まったりとご飯やお酒を楽しみながら会話していたのですが、様々なメンツと交流を取ることが出来たので本当にうれしかったです。声をかけてくださることも多く、「これがアイコン張り付けパワー…!!!」となりました。

二次会

前夜祭で出会ったほっしーさんと意気投合して近くの居酒屋へ。超絶新鮮なイカが出てきて、食べてる間も動いててちょっとビビりました。味はとてもおいしかったです。ゴマサバもマジで日本酒と合うんだこれが…。

その後はそそくさとホテルへ戻り、前夜祭の時に余ったのでもらったモノをぐびり。

翌朝

さて後は帰るだけということで、午前の便だったのでさっさと空港へ向かったのですが、ここで心残りとしていたラーメン一蘭がなんと保安検査場後の待合スペースにあった!ということでもうこれは朝だろうがなんだろうが食べるしかぬぇ、ということで食べました。思っていたよりこってりしていなかったので、濃い味があまり得意でない私でも非常においしく頂けたのが驚きです。これは札幌の一蘭にリピートするしかないです。

まとめ

そんなこんなで無事福岡を満喫したやまゆでした。本当に本当に serendipity な3日間を味わうことが出来て、今回は大成功だと思います。

こんな素晴らしい体験をできたのは、弊社支援制度、運営スタッフ、カンファレンス参加者の皆さんのおかげです。再度この場をお借りして感謝申し上げます。

serendipity に出会いたい技術大好きな方は是非採用情報ページから応募お願いします!

ブログ記事検索

このブログについて

このブログは、札幌市・仙台市の「株式会社インフィニットループ」が運営する技術ブログです。 お仕事で使えるITネタを社員たちが発信します!