公開日
更新日
- たぶん19分で読めます
PHPerKaigi 2024に参加しました
3/7(木)〜3/9(土)の日程で行われたPHPerKaigi 2024に参加してきました。参加された皆さんお疲れ様でした!
例に漏れず今年も最高のカンファレンスだったので、忘れないうちに参加レポートを書いておきたいと思います。
初めに自己紹介
Tickと申します。
普段は決済サービスを提供する会社で働いており、PHPを使って顧客や社内から利用される管理画面の開発を行っています。社内はほとんどJavaが使用されているのでPHPのエンジニアはかなり希少種です。
今年のPHPerKaigi
会場
今年は去年までの練馬・ココネリホールから中野セントラルパークカンファレンスに会場が引っ越しになりなした。
光回線完備の会場で安定してWiFiが使えるなど快適な会場でした。
また、コインロッカーが用意されており、リュックなどを預けて快適にトークを回れるようになっていたりと、去年からのパワーアップぶりがすごかったです。コインロッカーをレンタルしてくれる業者が存在するのが驚き。
PHPerチャレンジ
今年は例年の血で血を洗うランキング制ではなく、(おそらく)スコア2000点ごとに1枚手に入る抽選券を使ったくじ引き形式に変更になりました。
この変更によってある意味ゆったりトークやスポンサーセッションを回ることができる様になったかなと思い、これはこれで楽しめる企画でした(まあ例年上位争いに食い込むような順位ではなかったのですが…)。
ちなみに私はこの抽選会で特賞のPHPerKaigi特製カステラが当たりました。担当のスタッフの方いわく当たり0.5%とのことで、まさか当たるとは思わずとても嬉しかったです。ちょうどいい家族へのお土産にもなり妻と2人で美味しくいただきました。
また、専用デザインのTシャツや過去イベントのステッカーなどを頂きました。
PHPerチャレンジでカステラ当たっちゃいました #phperkaigi pic.twitter.com/RTUTa8ZSjB
— Tick (@ticknical) March 8, 2024
PHPerチャレンジ景品の特製カステラすごかった。桐箱にもロゴが入ってて、食べた後も長く楽しめる仕様 #phperkaigi pic.twitter.com/z3NRqnH0FL
— Tick (@ticknical) March 8, 2024
スポンサーブース
いくつか回らせて頂き靴下やマグカップなど多くのノベルティを頂きました。
中でも面白かったのはPR TIMESさんのブースでPHP8.3秒チャレンジという企画をされていて、それが面白かったです。
ストップウォッチを8.3秒ぴったりで止めるというもので、途中から秒数が消えるので目押しができないルールとなっているのですが、2人ほど8.3秒ジャストで止めている方がいてすごい盛り上がっていました。
PHPerKaigi2024、3日間ありがとうございました!
— PR TIMES Developers (@prtimes_dev) March 9, 2024
「PHP8.3秒チャレンジ」企画楽しんでいただけましたでしょうか?
8.300秒の方が2人出た時は感動しました!
また次回お会いしましょう!#phperkaigi #prtimes_dev pic.twitter.com/jSgymxyZAy
ネイル体験コーナー
会期の3日間プロのネイリストが来てくださってネイル体験ができるコーナーが爆誕していました。男性・女性にかかわらずPHPerKaigiのロゴ入りネイルを楽しんでいました。
PHPerネイルアート体験コーナーのご紹介!
— PHPerKaigi 2025 @3/21-3/23 (@phperkaigi) March 7, 2024
今日から3日間、なんとプロのネイリストさんにお越しいただきました!
ロゴ入りでシンプルなデザインや、磁石を使ってキラキラさせるマグネットネイルなど、自分好みのネイルが出来ます!
ぜひ、Track Dにお越しください!🙌#phperkaigi pic.twitter.com/IT5U9r7uWy
長谷川さんが「ネイルした指が視界に入るとテンション上がる」といっていたので、私もDay1にやってもらいました。すごい綺麗。 ネイルコーナー人気すぎて10人ほどキューにネイル希望の方が溜まっていて面白かったです。
ネイル体験すげえ!#phperkaigi pic.twitter.com/jBIxZkOqwW
— Tick (@ticknical) March 8, 2024
コードゴルフ
今年もコードゴルフが開催されていました。エンディングの最終結果で各問題の上位3人が発表されていたのですが、皆さんすごいなあと思って見ていました。
ちなみに私はそこまでPHPに詳しいわけでもないため、ChatGPTに問題を解かせることでコードゴルフに参加していました。
1問目のFizzBzzは75バイトまで短くしてくれたのですが、2問目のBase32、3問目のBrainF*ckはテストケースが通らず、そもそも回答を提出することすらできませんでした。AIが全知全能の存在になるまでにはもうしばらく時間がかかりそうです。
ChatGPTが短くしてくれたFizzBuzz
for($i=1;$i<=100;$i++)echo$i%15?$i%3?$i%5?$i:'Buzz':'Fizz':'FizzBuzz',"\n";
会期中のランチ
会期中はアンチボッチ企画として集まった人で4人1組の即席ランチパーティーを組む企画が開催されていました。
アンチボッチランチ企画!!!
— PHPerKaigi 2025 @3/21-3/23 (@phperkaigi) March 8, 2024
12:00より、1Fインフォメーション(案内所)横でアンチボッチランチの受付を開始しました!
一緒にランチに行く人が決まっていない人、PHPerとランチに行ってみたい人はぜひお越しください!#phperkaigi
私はなんだかんだでタイミングが合わなかったので、めもりーさんの中野ラーメンリストから毎日ラーメン健康生活をしていました。
Day0は青葉、Day1はようすけ、Day2は味噌が一番でラーメンを頂きました。どこの店もすごく美味しかったのですが。個人的には味噌が一番の味噌ラーメンが一番好みでしたね。
味噌が一番行ってみたおいしかった。めもりーちゃんおすすめラーメン屋リストから青葉、ようすけ、味噌が一番とこの3日間食べてみたけど、味噌ラーメン好きもあってここが一番好きかも #phperkaigi pic.twitter.com/06N942y9wG
— Tick (@ticknical) March 9, 2024
セッションの感想など
今年見たセッションの感想などを書いていきたいと思います。
Readable 正規表現
責務を分解するという基本的なところではあるのですが、バラしてやることで読みやすい正規表現になるのが驚きでした。
質問ではコードが3倍以上に増えてるけどという質問もあったりはしたのですが、個人的には1回限りのソースコードでない限りは責務を分解して書いてやるのがいいんじゃないかなと思います。後世に残された側には全てが集約された「神正規表現」は悪夢でしかないので(現に今の会社の正規表現も何やってるのかよくわからない正規表現が多い)。
マイクロサービスがほしいと思ったときに本当に必要だったもの 〜なぜ人は共通基盤の夢を見るのか〜
基本はプログラム内で共通処理にするだったり、外部ライブラリを使ってモノリスの中で解決させることができるため、マイクロサービスを採用する相当の理由がなければ後々苦しむだけだなと感じました。
今後はプライベートリポジトリなどを使用したモジュラーモノリスの方が流行っていくんじゃないかなと思います。
ウキウキ手作りミニマリストPHP
ちょうど会社でPHPバージョンアップの案件を実施していた際に、良くもわからずconfigureコマンドを叩いていたりしたのですが(モジュールを追加したり減らしたりする程度)、ダイナミックリンクを使うと動的にモジュールをオンオフできるなどとても参考になりました。
うちも思想としては入れておけば動かなくて困ることはないというところからモジュール全部入りスタイルに近く、バージョンアップ案件で入っているモジュールの設定値を全部確認するようなこともしていたので、できたら使わないモジュールは減らしていきたいなあ…と思いました。
あと、PHP Internals Bookというサイトが紹介されていたので、これは後で読んでみようと思いました。
こんな静的解析導入は負けフラグ
静的解析を導入する際のバッドノウハウがとても参考になりました。「開発時からPHPStanでチェックさせないと開発体験が悪くて続かない」などそれはそうって感じで聞いていました。
まだうちのチームだとPHPDocを書く習慣がないので(私以外はPhpStormを日常的に使用していないこともあり、私以外は書かなくてもそこまで困らない)、まずは書く習慣を根付かせるところからですかねえ…
10年以上動いているレガシーなバッチシステムを Kubernetes(Amazon EKS) に移行する取り組み
Slimのようなマイクロフレームワークではなく、独自フレームワークの上に様々なライブラリを使っているのが印象的でした。何故にこの構成にされているのか機会があれば聞いてみたいなと思いました。
「わたしたちのコード」を安定させるためにフレームワークとの距離を保つ
以前にクリーンアーキテクチャが流行った頃にオニオンアーキテクチャなどそれを簡略化したアーキテクチャが出てきていましたが、それを更に簡略化したものなのかなと感じました。
実際はlibディレクトリの中に色々とディレクトリ分けなど細かいルールがあるとは思うのですが、この方法であればフレームワークから業務ロジックを分離する方法としてはとっつきやすいのかなと思います。
また、ちょうぜつ本をおすすめされていたので、社内の図書館で借りて読んでみたいと思いました。
PHP 本体のバグを見つけたら適切に報告しよう
最近だとDockerのコンテナからPHPを利用している人も多いと思うのですが、そこからデバッグビルド版に切り替えるのはそこまでは難しくないんだなというのが聞いた感想でした。コマンドを4つ叩けばDockerでもデバッグビルド版に変更するのはお手軽。
ただ、今どき1からビルドするよりはパッケージマネージャーを使ってPHPを入れている人たちが大多数だとは思うので、その環境で同デバッグするかが課題ですね。
実際にPHP本体のバグを踏み抜くことはそうないのですが、できそうであれば報告してみようかなと思えるセッションでした。
キャッシュと向き合う、キャッシュと共に生きる
データ更新と生存期間のアルゴリズムとしてこんなに種類があるのが予想外でした。こんなに種類があるとなるときちんと設計してから導入しないと事故になるのは必然…
基本的にはキャッシュに頼るのではなくDBやアプリの作りを調整してパフォーマンス改善をしていくのが重要だなと感じました(キャッシュは麻薬の言葉は重い)。
保守開発メインでやってきたエンジニアが『リーダブルコード』を機能削除の観点から語る
コメントをアップデートとかプロジェクト内で養護を統一するとか、できてねえなあ…って聞きながらずっと思ってました。せめてURLの単語だけでも統一できようにしないとなあと。
私だと新卒2年目でここまでは考えておらず新規開発で「しがらみのない新規開発楽しい!!!!」って感じだったので身につまされました。
はじめてのメンバー育成。マネージャーとメンバー視点で振り返る1年間
私も最近中途入社したメンバーのアドバイザー役になることがあるのですが、自分も多くの開発案件を抱えていてどうしても放置し勝ちになってしまうため、私もこのくらい熱量をかけて後輩を見てあげられるようにならないとと感じました(ただなかなか意識を変えるのが難しい…)。
PHP8.2にバージョンアップしたら文字化けが発生して道頓堀に飛び込みたくなった話
対応した側としては笑い事ではないとは思うのですが、聞いている側としては大変面白く聞くことができました。また、文字化けが発生する可能性が分かった段階で開発チームもサポートチームに対して連絡はすべきだったよねーと。
私もサポートチームへの連絡漏れが時折起こしてしまっているので、気をつけないといけないなと感じました。
私もPHPバージョンアップの対応でmbstring周りでひどい目にあい、調査の段階でPHP8.1でアップデートされたmbstringがどのような仕様変更を含んでいるのかがリリースノートから読み取れず、私もバージョンアップ前と同様の挙動に戻すのに苦労しました。
懇親会・二次会
今年は去年と比べて多くの方と交流できました。1日目の2次会に思い切って参加してみたこともあり、そこから交流の幅が広がったように感じます。
懇親会では最後ビールがないなあと思っていたら、会場出たところに集められていろんな二人に配っていたのが面白かったです。あまりご飯を食べずに酒を飲みながらひたすら会話していたのですが、途中ピザが出てきていたらしく食べたかったなあもったいないことしたなあと。
2次会ではそーだいさんについて行って高円寺の中華料理屋に。安くて美味しい中華をつまみつつ旨い酒と会話を楽しまさせて頂きました。そーだいさんがいるところにみんな集まってくるのか色んな人が途中参戦してくるし、そーだいさんが金額安すぎてずっと騒いでいるのも面白かったです。
最後に
今年も最初から最後まで最高のカンファレンスでした。毎年パワーアップしているのが本当にすごいと思います。長谷川さんと初めとするスタッフの皆さんの企画力が本当にすごい…
また、皆さんのセッションを聞いていると、私も登壇してみたいと感じるようになりました。どこかのイベントにネタを用意して応募してみたいと思っています。
以上、これで私のPHPerKaigi 2024は終了です!また来年の開催も楽しみにしてます!