名もなき未知

エンジニアリングとか、日常とかそういうのをまとめる場所。アクセス解析のためGAを利用、Googleに情報を送信しています。商品紹介のためAmazonアフィリエイトを利用、Amazonに情報を送信しています。記事に関しては私が書いていない引用文を除いて自由にご利用ください。

PHPカンファレンス2023に参加しました

いつの間にか1年経っていたと思うと感慨深いです。文字に起こすと、雑多な感じの記事になりました。

カンファレンスページ

PHP Conference Japan 2023 #phpcon - fortee.jp https://fortee.jp/phpcon-2023

PHPカンファレンス 2023 - connpass https://phpcon.connpass.com/event/286717/

ハッシュタグは #phpcon #phpcon2023 が多かった印象

phpcon

https://twitter.com/search?q=%23phpcon&src=typed_query&f=live

phpcon2023

https://twitter.com/search?q=%23phpcon2023&src=typed_query&f=live

聞いたトーク

ほとんどブース回ってた関係で時間がなくなりました。 また前日の疲れからか午前起床もできず… なので2つしか聞けておらず…

後で読んだやつは別の記事にします、結構量があるので。

大解剖! amphp を使って非同期 PHP を実現しよう!

資料公開されてました。 https://speakerdeck.com/myamagishi/da-jie-pou-amphpwoshi-tutefei-tong-qi-php-woshi-xian-siyou

  • 並行と並列混ざる問題(並行(コンカレンシー)、並列(パラレル))
    • (発表の冒頭聞けてなかったため同じようなツイートを自分がしてしまい少し反省している)
  • PHPでは基本的に並行処理の実現となる
  • PHP 8.1 で Fiber サポートがされた
  • コールスタック管理を Revolt で扱うことができる
  • 一方で Fiber, Revolt ともに低レベルAPIの提供であるため、ライブラリ開発者などでなければ触る機会がない
  • そこで Fiber, Revolt をうまくラップしてアプリケーションに組み込みやすくしているのが amphp
    • もともと非同期処理は独自実装だったが、Fiberの登場により amphp は Fiber を使うように変更された
  • amphp は非常にシンプルでファイルの書き込みやHTTP通信などを簡単に非同期にできる強みを持つ

自分も最近Pythonで非同期処理を書いていたりするのですが、PHPでも同じように実現できるということがわかり、すごく勉強になりました。

(うまくいった||いかなかった) 技術選定は何を考えていたか

資料公開されていました。 https://speakerdeck.com/kubotak/umakuituta-ikanakatuta-ji-shu-xuan-ding-hahe-wokao-eteitaka

  • 技術選定した経験はありますか
  • HHVM/Hackの採用
    • 当時のPHPでは非同期にAPI処理するのが難しく、文法が近く非同期ができるHackに強みがありそうだった
    • 後にPHPのサポートが外れ、コミュニティも(日本では)あまり盛り上がらない感じになる
    • 退職後、どうなったのかは不明…
  • Vue, Nuxt.js の採用
    • 学習コストなどを考え選定
    • 当時はまだ Vue2, Composition APIが来ることがわかっていたのでそこに備えつつ開発
    • Vue3が無事リリースされるも、Nuxtがなかなか新規バージョンリリースされず、2年遅れて Nuxt 3がでる
  • フロントエンドアップデートできない問題、そして SvelteKit へ
    • 中途半端に入った Composition API があり、書き直しが必要になる
    • Root Contextの廃止により書き直しが必要になる
    • などがあり、バージョンアップと言いつつ実質作り直しが必要な状況となった
    • ほかプロジェクトで開発経験の良かった SvelteKit を採用、学習コストもあまり高くならずに済んだ
    • フロントエンドの流行はわからないので常にアップデートを監視して、備えるべし
  • 技術選定の際に考えること

ミドルからシニアとか、テックリード・アーキテクトを目指す人にとって観点が非常にまとまっていて、すごく勉強になりました。 「技術選定の際に考えること」のパートはチームをリードし始めたり、方針を考え始めた人にとってかなり価値ありそうな感じでした。

自分自身もまた読み直して経験に学び、活かしていきたいです。

LT

ぱぱぱって感じだったので覚えが曖昧です。

  • OPCode趣深さがあった
    • そういうの最近やってなかったなとか
    • 新し目の文法とか機能が出たときに試してみるのは良さそう
    • 一方でバージョンによってOPCodeが最適化されてると買ってあるのかな?とか思った
  • コミットについて
    • PHPStormから簡単にリベースできるらしい
    • コミット自体の命名 AICommit 的なやつと自分で書くのと将来的にどっちがいいのかな? とはなりそう
      • AIは多分て抜いてても fix とか書かないと思うので
      • とはいえAIに与えるヒント的なものは少し書く必要があって、説明をいい感じに人間が入れたらいい感じにコミットメッセージをAIが書いてくれる関係性なるかもしれない
    • プレフィックスとしての review-fix いいなとおもった
      • feat, fix とか emoji commit みたいなのは試したけど、明確にレビューで直しましたということを示せるのが良さそう
  • ライブラリの対応関係もあって2段飛ばしのアップデートは本当に苦労がヤバそう
  • カンファレンスやLTを通して学び深めてるのいいなと思った
    • 地方でもそういうイベントが割とあるのも良さそう
    • 知らないことは調べようがない問題を解消できる
    • 他のエンジニアが何をしているのかを学ぶことができる
  • プルリクサイズが大きいときに教えてくれるの悪くはなさそう
    • Slackに飛んでほしい感はある
    • ただ、PRが大きいというしきい値判断は難しいよなと思った
      • 設定値で変えられるとはいえ、行数・ファイル数だけの問題なのか?的な
      • 複雑度の向上とかも解析対象とできそうな気がする
  • 地方採用がさらに難しくなっている現実がある
    • 地方からフルリモート東京の企業へ、となると地方の人を引っ張ってこれない
      • 給与的な面の課題もある
    • 地方に残って地方を支えたいというモチベーションややりがいを見いだせないと難しそう
    • 地方でも技術イベントが増えつつあるので、今後もしかしたらチャンスがあるかもしれない
  • Composer の機能改めて知らないとなぁーとなった
    • 適当に使いがちなので…
    • あと composer.json, composer.lock 意外とみんな読んでないだなぁと思いました
      • 自分は依存ライブラリのバージョンとか脆弱性とか心配なので調べがち・読みがちである

懇親会

オブジェクト指向入門 第2版 原則・コンセプト | SEshop| 翔泳社の本・電子書籍通販サイト https://www.seshop.com/product/detail/7595 この本を教えてもらったのでそのうち読みたいです。

あとカルテットコミュニケーションズさんと話していたのですが、名古屋の方々ということですごく盛り上がりました。 (ジブリパークはそのうち行きたいです)。 各地域で技術コミュニティ的なところが盛り上がっていますが、なぜか大阪・福岡・沖縄・北海道の話ばかり耳に入るので、大都市である名古屋でも大きめのイベントが増えてくれると嬉しーなと思います(あんまり名古屋で大きいソフトウェア系のイベントをやっているイメージがないので…w)。

あとは昨日DjangoCongressでもあった人と会えたのは面白かったですねw またPHP TechNightやPHPTechCafe、その他諸々のイベント出会った人たちと初めてあったり再会できたのもとても良かったです。

(懇親会でもちらほら言われてましたが、割とネット上の人格と実態は合わせないようにしているのでスタンス的にご理解いただければと思います…)

1つ気になったこととして、懇親会への参加ハードルが高い問題もあると思いました。 これはちょっと後日書くか、どこかでLTをしたいと思います。

懇親会LT

あんまり覚えていません。

  • NFCネームプレートおもろそう
  • #[inject] 知らなかったなぁ
    • アトリビュートについての学習が何も追いついてないので、覚えないとなとなりました
  • 言語の歴史あんまり知らないなぁとなった
    • どうしても自分はこのバージョンであれこれが使えないみたいなおいかたになってしまう
    • 言語自体に対しての興味が結構薄れているという自意識に気がつけたかも
  • PHPの変数参照の仕組み…
    • $$ みたいなパターンが現れてしまったら要注意だなと思いました(PRレビューとかで目が滑る可能性ありそう)
  • モブワーク
    • 実践している人が多いなぁと感じた(スクラムフェス、XPまつりで観測してる範囲の問題もあるかもしれない)

各種ブース

なんか結構回った割にあまり覚えてなかったのですが、今回顕著にブースなれしている・していないが別れていたように思います。 久々のオフライン開催であったことも原因なのかもしれませんが、技術者向けのアピールをもっとしてほしいなと思うところもありました。

この点に関しては割と危機感があるので、DevRelの人とかインターンとかブース作業に対して他社分析を行い、必要なものを洗えることに注力できる人を置く必要があるのかなと思いました。 またブースにいないといけないのでトークを聞きにいけないという話もちらほら聞いていて、ローテーション表を作るなどの対策なども基本だと思っていたのですが、このあたりもノウハウとして広く共有が必要であることを認識しました。

自分自身はカンファレンスはコアスタッフ、当日スタッフ、トークスピーカー、一般参加、スポンサー参加と、招待講演やワークショップの講師を除けばほとんどの参加形態を体験していることもあり、なにか情報として残せることがあるように思いました。

どこかでLTなどをして、チートシート的にまとめあげる、は今一度オフラインのスポンサーブースが復活してきた昨今の環境では価値のある活動のように思いますし、やりたいなと思っています。 (ただし自分の体力と時間との勝負になる点はある)

活動的に印象に残っていたのは脆弱性の問題を出していた Flatt さんで、インジェクションなのはすぐわかったものの Laraval でどう対応するのかが正しいのかは考えさせられました。 結構アプリケーションの開発ばかりしていると忘れがちになる問題ではありますが、セキュリティ意識やそれに対する対策と担保もどうしていくのか、今後学習を続けていきたい分野ではあるなと思いました。

あとはオープンロジさんも実際に検品作業をやって見るみたいな流れでイメージがしやすく面白かったです。 私達全員がその手の業務に詳しいわけではないので、実際に触れてみることでどう役に立つアプリケーションを開発しているのか、がよく示されていて面白く思いました。

まとめ

今回ブースが復活したことによりずっとブースを回っていたのですが、ブースを回っていたら終わってしまったので難しい気持ちになりました。 しかし各社の取り組みを聞いていると、いろいろなビジネスがあり、PHPが世の中の役に間違いなく立っているんだなと感じます。

トークもあまり聞けていないのは残念なのですが、聞きたかった2つだけはしっかりと聞いたので良しとします。 このあとアーカイブも表示される予定と聞いた気がしますが、まずはスライドを読んでいきたいぞ〜と思ってます。

オフラインでのイベントがまた盛り上がりを見せていて、いろいろな人に会え学びを増やしていけたので、自分自身ももう少し発信を増やしていければな…と思います。