PHPerKaigi2024行ってきた🏃♂️💨
こんにちは、みきです。
タイトルにもある通り、3月7日〜3月9日の3日間で開催された
「PHPerKaigi2024」に参加してきました!
今回はその時の様子をまとめていこうと思います⛏️
↓↓イベント情報↓↓
🛫 FUK ⇒ HND
初日の7日は夕方からの開催ということで、昼くらいに東京へ向かいました。
福岡空港から出発する時毎回食べているような気がするうどんを今回も食べて出発しました!
そんなこんなで羽田空港に着き、電車に揺られ、無事にホテルまで辿り着きました。
一息ついて会場まで向かおうと思い電車を調べると、なぜか会場まで30分以上かかる🧐
というのも今回の会場は中野付近だったので、その付近でホテルを取ろうと思い、
東京の土地勘皆無の私は「直線距離4kmくらいだし安いから、江古田のホテルにしよう」と思いホテルを予約しました。
するとどうでしょう、江古田⇔中野 の電車のアクセスは非常に悪く、
江古田→池袋→新宿→中野
とたくさん乗り換えをしないといけませんでした、、、
これは本当に痛恨のミス🥺
後々PHPerKaigiで出会った人みんなから、なんで!?と言われてしまいました。。
今回の件から得た教訓は「ホテルは会場から電車1本でいけるところに取れ」と言ったところですね😌
🐘 PHPerKaigi2024本編
前夜祭
ホテルは少し遠かったですが、無事に開始前に会場に着くことができました!
受付時にQRコードをかざすと、\ぺちぱー/ と音が鳴るのめっちゃ良かったです。
もらった名札にNFCタグが入っていたり、たくさんの軽食やフリードリンクもありめっちゃ豪華だなと思いました!
PHPerKaigiはノベルティも豪華で、なんと開催前にノベルティが専用の箱で届くというのも驚きました!
ちゃんと忘れないようにTシャツとタオルは持って行きました
前夜祭はちょこちょこ登壇を聞きつつ、主にスポンサーブースを回っていました。
(登壇についての内容は後述の「⛏️ 印象に残ったセッション」にまとめています!)
スポンサーブースではいろんなことができて毎回楽しみです。
帰りは荷物でいっぱいになるくらいたくさんグッズももらえます!
最高ですね🔥
(写真撮るの下手すぎました)
ただ、これ帰り全然スーツケースに入り切らなかったので、次からは荷物も少なめにする必要がありそうです、、
夕方くらいから始まったこともあり、前夜祭はあっという間に終わりました!
初日からとても楽しかったです!!
Day1
この日の朝はとても寒く少し雪も降っていましが、
なんとかホテルをでて会場に行くことができました⛄️
(なんなら早く着きすぎて少し彷徨いていました)
朝にはドーナツが振舞われており、とてもありがたかったです!
ぱないの!という感じでした🍩
さて、いよいよ本編が始まりました!!
PHPerKaigiはその他のカンファレンスと違い3日間あるので、
少しスケジュール感にゆとりが生まれてとても良かったなと感じました。
(ゆっくり喫煙所に行く時間が欲しいだけですが、、)
会場Dでは、ネイル体験なるものもありDay1の時に体験しました!
ネイルはたまにするのですが、ジェルネイルは初めてだったのでとてもテンション上がっていました!
終わってからもずっと言ってた↓↓
ネイル自体もPHPerKaigiのアイコンが入っていたりですごかったです!
というかPHPerKaigiにネイル体験ってすごい()
またLTでは、ペンライトが用意されておりめっちゃライブ感ある楽しいLTでした!
もうもはやお祭りだなこれと思っていました。
充実した1日でしたね、、
Day2
さていよいよ最終日!はやすぎんか…?
最終日も無事に時間通りに会場入りできました!
普段起きるのは苦手ですが、こういう時に起きれるの強い🔥
PRTIMESさんのスポンサーブースでのPHP8.3秒チャレンジでは、
本をいただくことができました!!
3日目にしてコツを掴みましたね💪
ちょうど最近ISUCONに出ようという話をしていたので、
めちゃめちゃタイムリーな本をいただいたなと思います!
3日目ということで、徐々に疲れが溜まってきており登壇と登壇の間の時間は暗い部屋&&心地よいBGMでうとうとしていましたzzz
そんなこんなでついにクロージング!
エンディングエモすぎた、、、
参加者の名前もあり、自分の名前も出てきたのでテンション上がっていました🔥
今回は、コードゴルフやPHPerチャレンジなどにはガッツリ参加できなかったので、そっちの方も来年は参加しようと思います!!
懇親会
ちょうぜつ人見知りでお馴染みのみきですが、
なんと今回は知り合いの金魚の糞をすることなく色々な人と話すことができました!
カンファレンスを通じての知り合いが増えているというのもありますが、
どんどん成長していっているの偉すぎますね👏
懇親会時の写真を撮るのを完全に忘れていて何も載せるものはないですが、
その分たくさん人と関わっていたという証拠と考えていいでしょう!
最後帰る時に撮った写真めっちゃいいので見て欲しい
これ完全に書くタイミング逃しちゃったので次回はなんか描きたいな
懇親会の後は次の日の飛行機を9:30とかにしちゃってたせいで、
大人しくすぐホテルに戻って就寝しましたzzz
⛏️ 印象に残ったセッション
ここでは、聞いたセッションの中で特に印象に残ったセッションについて思ったことなどを書いて行きます!
今回書くのは以下の通り👀
Readable 正規表現
ウキウキ手作りミニマリストPHP
「"品質"が高いコード」って何?
まっちすいっち戦争
いまからでも遅くない!ゼロから始めるPHP ~ゆかいなPHPerたちといっしょ~
B+木入門:PHPで理解するデータベースインデックスの仕組み
キャッシュと向き合う、キャッシュと共に生きる
phpunit/php-code-coverageって何をしてるんだ
privateメソッドのテストって書かない方がいいんだっけ?
木を見て!森を見て!目で見てわかるAST(抽象構文木)
これまではタイトルを見て自分が知っているような話を聞いていましたが、
今回は割とみりしらのトークをたくさん聞いたような気がします!
Readable正規表現
自分は正規表現には苦手意識をもっており、
仲良く(?)なるために聞きました。
フォーマットごとに責務を分ける
適切な名前をつける
テストをする
2, 3を正しく行うために1が一番重要だなと感じました。
アプリケーションでは割と意識している部分と思っていましたが、
確かに正規表現は一つでやりがちだなと気付かされました。
正規表現に関わらす、神が生まれるのを阻止していこうと思います。
ウキウキ手作りミニマリストPHP
普段PHPの環境を作ってはいますが、前動いたものをそのまま持ってきたり、
あまり意味の分かっていないけど動くから追加してみたりなど、
なんとなくで行っていたので聞きに行きました👀
正直話の内容は9割ナンモワカランという感じでした。
たまに知ってる単語出てきても、なるほど…?と言った具合でした、、
このような話を聞くと、基礎知識が足りてないなと毎回痛感します。
今年はPHPを一から学び直そうと思っているので、
環境作りも含めて初めていこうと思います。
これまであまり使ってこなかったphpコマンドも新しく知ることができたのは収穫でした。
「"品質"が高いコード」って何?
こちらのトークはただただ聞いてみたい!と思ったので、聞きにいきました。
学びもとてもありつつ、最近考えていたことについての言及もあり、赤べこくらい頷いていました。
明確に「する」「してもよい」「してはならない」を決めると言われていたことが自分の中で一番の学びでした。
工業大学出身ですが、ISO規格について未知の部分が多いので、この辺りもまた勉強する必要があるなと感じました。
結局は一番目的や要求が大事であり、そこより下はあくまでも手段であることを忘れずに生きていこうと思います。
まっちすいっち戦争
matchとswitch(とstrategy)をそれぞれ比べて、どのパターンの時にどちらが良いのかが分かりやすいLTだったと思います。
このLTでは、特定の条件で単純な処理をする場合にはmatchが良く、
複数行に渡る処理を行う場合にはswitchの方が良さそうという結果でした。
個人的には、PHP8以上で、switchの方がmatchよりいい使い方ができるような複雑な処理の場合には、本当にそこに書くべきものなのかな?と考えるようにしており、
そのような時には大抵設計が間違っていることが多かった経験が多いのでswitchが最適であるとなることは少なそうな印象があります。
経験が少ないが故にこのような思考になっているだけかもしれないので、もしそんなことないよというパターンなどがある場合にはぜひ教えていただきたいです。
いまからでも遅くない!ゼロから始めるPHP ~ゆかいなPHPerたちといっしょ~
我らがびきニキの登壇です!
ちなみに自分がPHP系のカンファレンスについて知ったのはびきニキのおかげなので、感謝しかないですね。。
PHP系のカンファレンスと通してどのように自分が成長していったのかがとても分かりやすい発表でした。
このように振り返った時に自分が成長したと感じることができ、
さらに自分の宣言したことをやり遂げてそれを発表していてとても素晴らしいし、自分も見習わないといけない部分だと思います。
B+木入門:PHPで理解するデータベースインデックスの仕組み
先月の社内LTにて自分も「インデックスの仕組みについて理解しよう!」という内容のLTを行ったので、自身の理解度確認も含め聞きにいきました。
実際に発表を聞いたところ、「ああ、自分は何も理解していなかった、、」となってしまいました。
B+木の動きを見ることができるサイトを共有されており、これがめちゃめちゃ分かりやすくていじって遊んでいました。
INSERTについては完全に理解したので()、UPDATE、DELETEについてもちゃんと理解しようと思います。
キャッシュと向き合う、キャッシュと共に生きる
何かと苦手意識があるキャッシュについて知るべく、登壇を聞きにいきました。
これまでキャッシュはした方が良いと考えていたので、「キャッシュが不要なら使わないに越したことはない」ということを聞いて、とても学びになりました。
先ほどのB+木の話でも出てきましたが、データ構造とアルゴリズムでパフォーマンスを改善することもできるので、本当にそのキャッシュが必要かどうかを判断できるように基礎的な知識から入れていこうと思います。
キャッシュの多段について、それをしていないと思っていても
キャッシュされているデータから別データを生成している時にはそれは実質キャッシュの多段になっているということを学びました。
phpunit/php-code-coverageって何をしてるんだ
カバレッジという概念自体に対する理解はあったつもりでしたが、
詳細な理解ができていないことと、実際に計測等をしたことがなかったので
こちらの話を聞きにいきました。
Xdebugの導入により拡張関数が存在することなどを知ることができました。
カバレッジデータの中身も見やすく、それについての説明もとても分かりやすくとてもためになる登壇でした。
テストのカバレッジを集計することによって、テストケースの品質向上が期待されると思うので、今回得た知識を取り入れて実際にやってみようと思いました。
privateメソッドのテストって書かない方がいいんだっけ?
以前自分もprivateのテストを書いていて、あまり良くなかったなという経験があったのでこちらの登壇を聞きにいきました。
privateのテストを書くに至った経緯から実際に書いてみてどうなったのか、そこからどうしたのかというストーリー仕立て(?)の登壇で、めちゃくちゃ分かりやすいかつ、とてもためになる登壇でした。
個人的には今回聞いた中で一番いい話だったなとなりました。
テストコードとプロダクトコードの距離感という表現がとても分かりやすかったです。
また、テストケースは仕様を表すようにするという考え方は最近意識するようにしていたので、登壇を聞きながらめっちゃ頷いていました。
木を見て!森を見て!目で見てわかるAST(抽象構文木)
ASTについてのザ・LTというようなスピード感の発表でしたが、とても分かりやすかったです。
この話を聞くまでASTのことについての知識はほぼほぼ皆無でしたが、なんとなくの概念については理解できたと思います。
B+木の時もそうでしたが、やはり動きが見えると最初の理解がすんなり入ってくるので、自分があまり理解できていない範囲の基本的な内容のLTや登壇をたくさん聞こうと思いました。
この他に聞いたどの登壇もとても素晴らしいものでした!
自分もたくさんプロポーザルを出して発表する側に立ちたいですね🔥
最近カンファレンス等で様々な登壇を聞いていますが、
自分にはPHPの基本的な知識や普段何気なく使っているライブラリが何ができるのかなどの知識と、実践経験がまだまだ足りていないなと実感させられます。
今回の学びもためになるなぁで終わらせるのではなく、実際にやってみてしっかりアウトプットをしていきます💪
さいごに
今回もめちゃめちゃ楽しいカンファレンスでした!
できることなら、全PHP系カンファレンス行きたい。。。
今回の遠征での技術以外の学びは以下の通り、
ホテルは会場から電車1本でいけるとこ
帰りの便は余裕もってせめて昼過ぎにする
行く時の荷物は少なめに
また、これまではカンファレンス中 or 終わったその日中にブログを書き始めていましたが、
今回は書き始めも遅く実際に公開するまでにも時間がかかってしまいました。。。
鉄は熱いうちに打てではないですが、やはり早く書き始めることのメリットが大きいなと書きながら思いました。
今後はもっと早めに書く、、、、
カンファレンス以外のところでは少し大変でしたが、
PHPerKaigi2024は本当に最高のイベントでした!!
運営の皆さん、登壇者の皆さん、そのほか関わってくださった皆さん、
本当にありがとうございました。