PHPカンファレンス沖縄2022!

PHPカンファレンス沖縄2022!

目次

参加

オンライン参加。PHPカンファレンス初参加。

https://phpcon.okinawa.jp/

※アイキャッチ画像は沖縄では〆にステーキ食べるっていう話がPHPerのツイートで盛り上がっていたので。

感想

Laravel関連が多かった!コードの中身読んでみてこうなってるよ系が特に多め。

カンファレンスって

  • 0→1を知れる(こんなライブラリ、仕組みあったんだ系)
  • 1→50を知れる(名前は聞いたことあるあれ、こんな感じなんだ系)

が多くて、普段検索とか生きてるだけでは触れない知識に触れて大変有意義な感じがする。
そんでもって参加費無料。

PHPerKaigiと比べるとよりカンファレンスって感じがしました。PHPerkaigiはカンファレンスというよりお祭り感がすごい。

閲覧

アーカイブがYouTubeで見れます。

当時のコメントはPHPカンファレンス沖縄2022のDiscordやTwitterのタイムラインで流れちゃうので、やっぱりリアルタイムで見るのが一番楽しいかも。

特に個人的にオススメしたい登壇

  • こどものおもちゃとエンジニアリング
    →万人におすすめしたい。
    PHPに関しての内容ではないが、こどものおもちゃに見るエンジニアリングの面白さを知れる。
  • 30分で理解するEloquentの巨大な全貌
    →Laravel使ってる人にオススメしたい
    Eloquentとんでもなく巨大な世界だなと感じれる。一人だと探っていける心が持たないので助かる。
  • 実践!ユニットテスト入門
    →テストまだやったことない方にオススメしたい。
    テストの目的、各段階で何をするのか、PHPStanでのdataProviderの使い方など知れる!
  • 実践PHPStan
    →PHPで型付けなかったり、静的解析ツール使っていない方にオススメしたい。
    PHPでいかに型を整えていくかなどを知れておもしろい。実際使用する際にPHPStanに怒られがちな部分の対処法まで説明されてて、実践的。
  • HTTPリクエストの行方 - Laravelがレスポンスを返すまで -
    →万人におすすめしたい。
    HTTPリクエストの部分からNginxからphp-fpmに渡される部分、Laravel内部で行われている処理まで全体にわたって丁寧に説明されている。もっと早く見たかった……
  • 誰でも簡単に始められるBDD(ビーチ駆動開発)のススメ
    →万人におすすめしたい。
    ビーチ駆動開発……厳しくない……?って分かる。

メモ

以下、個人のメモなど。
正直視聴時はDiscordとTwitterに張り付いててあまりメモできていない……
メモなのでだいぶ適当……そして全部は見れていない。
書いて公開しないと絶対忘れるし理解さぼっちゃうので……
あくまで後で見返して全体把握する時用の備忘録です。
※決して敬意を払っていないわけではありません。

10:30 PHP で NFC リーダーを実装する

めもりーさんの登壇!

以前のPHPerKaigiでもNFCのお話されてた気がする。

liusbを使うとPHPでUSBデバイスにアクセスできるっぽい……すごい世界……
自作キーボードのミドルウェアをPHPで書いたりとかできるらしい。

今後Bluetoothもやっていきたいと展望はなされてて、PHP、何でもできるなって思った……

11:00 GitHub Codespace で始めるリモート開発

GitHub Codespacesについての紹介。
単純にリモートでできるだけじゃない!

Laravel特有の設定にも触れてくださっている……PHPStorm使えないのは難しいなと……
絶対URL周りがちょっと大変だなと知った。

ポートフォーワードローカルを超えてできるのすごい……

お仕事で開発環境整えるの時間掛かるの、インターンなどでもあるあるなんですよね……

メモリの少ないラップトップだとWSL激重がちなので、Windowsでも助かる……

PRでcomposer.json絡む変更だったり、出先でメモリの少ない激重WSLだったり、ちょっとのインターンだったりで便利だなって思いました!お金との相談が必要ですが……

11:30 僕が Illuminate を読む理由

ふわせぐさんの登壇。

  • メソッドの発掘ができる!
  • フレームワークの仕様が深いところまで分かる!

withについて具体的に辿っての説明付きでした。

ちゃんとilluminate読もうと感じました。

コメントの修正やコメントにリファクタリングの余地あること書かれていたりとOSSコントリビュートできる余地があることも知れました!

階数表示でコードの参照辿っていく説明するの良いなって思いました……!

11:40 テスト環境のインフラ・運用コストを下げたい話〜全部入りEC2を超えていけ

※一部録画で見た

各社のサービスのメリットデメリットが比較されてて分かりやすい内容。特にPaaS系のサービス解説が中心。
Heroku無料枠の終了時代に響く内容。

HerokuのEnterpriseなら東京リージョンがあるらしい。

Redis系のサービスは高いっぽい。
Cronの代替とか、非同期処理の代替とか、いろんなサービスがあると知った。

Fly.ioかCloud Runがおすすめとのこと。

個人開発はお金の都合でVPNに行き着くの自分だけ……?

13:00 こどものおもちゃとエンジニアリング

Toysubというサービスいいなって思いました。

スポンサーセッションなので企業紹介なのかなって思ってたのですが、子供のおもちゃに見られるエンジニアリングの話、使う側、製造する側の目線で紹介されててめちゃくちゃ面白かった。

いいはなし。

13:10 「LeanとDevOpsの科学」を実践して ~LancersのDevOps的取り組みとこれから~

推測するな計測せよ。

マーティン・ファウラーさんでてきた。

For Keys→デリバリのパフォーマンスを測定する4つの尺度
27のケイパビリティ→For Keysの改善効果が高いことが特定されている組織の能力

13:35「アンチパターン」からはじめるテスト自動化

すでにリリース済みでテストしにくいサイトに対して向けという感じ。

Autifyというのを使うと環境構築不要でできるらしい。

具体的な内容というよりは概要といった形なので、詳細が気になるところ……WordPressとか、テストはやっぱりブラウザテスト系のみかな……

13:40 めんそ〜れ!モブプロ!!!

さんぴん茶というのがあるらしい。
モブプロなるほど……

13:50 Gather x Code With Me x ペアプロのお誘いで最高です

コードペンとかPHPStormで共有ツール使うとか、そういうツールもあるのか……!って知った

14:00 symfony/pantherでWordleを解いてみた

Wordleの解くアルゴリズム、ハフマン符号化的な解き方してておもしろい。

12:1014:30 今あらためて考える ~ PHPに型定義をする理由 ~

上に出てきた「LeanとDevOpsの科学」を実践してと同じ方の登壇

静的解析の話!確かに最近静的解析注目されてる気がする。
それでもこの世界のPHPerは1/3くらいしか静的解析使ってないらしい……

ドデカ文字でスライド進めるタイプ…テンポよくて良い……

具体的な機能というよりはそれによって得れるメリットなどが中心。
具体的な使い方は実践PHPStanを見ると良さそう。

14:0014:40 30分で理解するEloquentの巨大な全貌

Eloqunet、想像以上にでかいものだと知った。単純に名前空間にあるものだけじゃなくてめちゃくちゃある。

Query/Builderをオーバーライドしている理由など
→リレーション、グローバルスコープ

クラスとして使用する場合はテーブル、インスタンスとして利用するときは行!

15:20 カンファレンススピーカー入門〜登壇するぞ!って決めてからトークするまで〜

  1. ターゲットを決める
  2. プロポーザル(採択されたプロポーザルの書き方や内容を分析)
  3. レビューをしてもらう

カンファレンス登壇してみたい……!

15:20 開発体験を爆上げするLaravel Dacapoマイグレーションサポートツールのススメ

存在自体はゆうきゃんさんの記事で知っていたが、改めて便利だと感じた

Laravelのmigration関連のテーブル、ごちゃごちゃになりがちで最終的には手動でファイル名の日付いじって調整なんてのもやりがち。

ただこのツールはあくまで新規導入時にといった目的なので、もう崩壊している既存のLaravelプロジェクトで使えないの辛い……(リリース後でもデータベースから差分を読み込んで使える機能をアップデート予定らしい!)

14:5015:30 実践PHPStan

安定のtadsanの登壇。

string[]でなくlist<string>
同じ構造が繰り返される→<>キーごとに別のデータ{}

\PHPStan\dumpType();とか。

あとassert()で型正しいよっていうのをPHPStanに理解させるのとか、filter_var使うのとかなるほどって感じ。

safePHP、if文減らせてありがたい。

15:30 実践!ユニットテスト入門

※上と被ってたので録画で見た。

日本語でメソッド名つけるのわかりみ。

ユニットテストを書いたことがない向けだが、ちょっとだけ書いたことある自分にも勉強になった。
コードは書く時間より読まれる時間の方が長いは本当に格言だと思う。
テストコードにはWhatを。

テストコード名は メソッド名_Xのとき、Yを返す がよい。

arrange、act、assert!

setUp,tearDownもDRYに基づいて……ってしてて初学者に良い情報を与えている感じある。

dataProviderとかも。pytestとかではデコーダでやるやつ。

よくCIでやってるやつはContinuous Testingなのか、DevOpsバグフィルターを防ぐためって感じっぽい。

神田明神にバグのお守りが売っているらしい。

16:10 HTTPリクエストの行方 - Laravelがレスポンスを返すまで -

コード部分だけでなくHTTPの3ウェイハンドシェイクからPHP-fpmなどに始まり、具体的にLaravel内でどうやってるか、さらにはPHPとRDBの接続まで紹介されてて大変勉強になる。

拡張HTTPリクエストヘッダーとか、HTTPの拡張性すごいなって思う。

16:50 Laravelで二要素認証をサクッと実装してみた

Google2FA使う方法を5分で紹介されてた。

意外と簡単にできちゃうと知れてお得。

16:55 Laravel FormRequest にアクセサ機能を追加して、リクエストクラスをスッキリさせた

恐ろしいデータベースの構造をみた……

単一責任原則についても触れられていた。

17:00 誰でも簡単に始められるBDD(ビーチ駆動開発)のススメ

自撮り写真楽しんでる感あってよかった。
ビーチ駆動開発は捗らないらしい……

おわり