タイトルの通り、PHPカンファレンス2024に参加しました。スピーカーとかスタッフではありません。
せっかくなのでブログに軽く書くことにしました。初参加です。
行こうと思ったきっかけ
正直覚えてないんですが、
- なんとなくconnpass眺めてたら見かけた
- なんとなくソフトウェアデザイン読んでたら見かけた(気がする)
- なんとなくX(略)
とかだった気がします。一応PHPを使ったコーディングがメインのプログラマなので、それなら行くべきだろうなという前向きな理由も少しだけ。
聞いたもの
タイムテーブルはこちらをどうぞ。
- PHPStan拡張のコードから読み解く静的解析の威力と可能性
- 入門 文字列
- PHPUnitでモックとスタブを使いこなす
- テストコード書いてみませんか?
- PHPで作るWebSocketサーバー ~リアクティブなアプリケーションを知るために~
- 20年もののレガシープロダクトに0からPHPStanを入れるまで
- ある日突然あなたが管理しているサーバーにDDoSが来たらどうなるでしょう?知ってるようで何も知らなかったDDoS攻撃と対策
- 情報漏洩させないための設計
- 責務を分離するための例外設計
プチ感想
ガッツリ書くと大変なのでちょっとだけ。詳細知りたい方はスライドがオススメです。
PHPStan拡張のコードから読み解く静的解析の威力と可能性
業務でPHPStanが導入されたので、理解を深めたいと思い参加。後半はLarastanの話。マジックメソッドが多くてPHPStanの推論が役に立たないとかの理由でLarastanが存在するんですね。なんでLaravelだけ非公式のライブラリなのかは分かりませんが(嫌いなんでしょうか)。
入門 文字列
業務で文字コードについて軽く調査する機会がありました。たまたま関連する講演があったので調査した知識が消えないうちに参加。文字コードが複雑に派生している理由とかが知れて良かったです。
ファミコン時代のドラクエとかの独自文字コードの話も面白かった(カタカナの文字を作りすぎると容量を削るので、'ホ'
とか'イ'
とか'ミ'
とか特定の文字しか用意しないだとか、'へ'
は見た目的な意味で平仮名、カタカナどちらとしても使えるので片方しか用意しないとか)。直感で分かる話大好き人間なので…
PHPUnitでモックとスタブを使いこなす | テストコード書いてみませんか?
こちらも最近業務でテストを書く機会ができたので参加。PHPUnitを前提とした講演でしたが、自分はPestを使っています。ただ自分のテストを書く経験がほぼ0なこと、考え方はPestもPHPUnitも変わらないため役立つ内容になるだろうなと思い気にしませんでした。
自分がテストダブルについてそもそもの理解が無いので、今後スタブやモックを見かけた際にこれらの公演を思い出すことができればいいなと思います(浅)。テストメソッドを日本語で書くという考えはなかったので聞けて良かったです。ただ良くも悪くもPHPっぽい書き方にはなるのかな?
PHPで作るWebSocketサーバー ~リアクティブなアプリケーションを知るために~
自分は適当なゲーム配信を覗くのが好きなのですが、リアルタイムのコメントとかはどうやらWebSocketで実装されているっぽい。PHPでどんな感じで書けるんだろうかという興味から参加。
聞いた公演の中で一番難しく感じたのですが、サンプルアプリケーションも用意されており関心を絶やさず聞くことができました。これは自分が無知すぎるだけかもしれないのですが、ソケットを扱うときにwhile(true)
などで無限ループを行なって接続状態を監視する方法がメジャーなんですね。へえ〜(無限ループを有効に使用するという発想がなく、なるほどねと思う)となりました。へえ〜。
20年もののレガシープロダクトに0からPHPStanを入れるまで
理由は先ほどと同じくPHPStanの理解を深めるために参加。そりゃありえないくらいエラー出るよな〜とウケていました(全く他人事ではない)。
大人しく新規コードから品質担保していくのも有りだという話が出て、それなら比較的簡単に導入できそうだと思えました。導入時に考慮すべきことについての知識も得られて良かったです。
ある日突然あなたが管理しているサーバーにDDoSが来たらどうなるでしょう?知ってるようで何も知らなかったDDoS攻撃と対策
タイトルに惹かれ参加。代行DDoSする月額サービスがあると聞いて絶句。学生が面白半分でやるケースもあると聴き絶句。でも実際、ゲーム配信者が借りたマイクラサーバにDDoS攻撃されたとかありますもんね。DDoSって本当にいつ遭遇してもおかしくないよなと意識を高めるきっかけになりました。対策についても詳しく触れられており勉強になりました。
情報漏洩させないための設計
こちらもタイトルに惹かれて。タイトルから自分は不正アクセスなどを思い浮かべたのですが、実際はシステムエラーなどから発生する意図的でない流出についての話題になります。
とある機密なデータを操作するメソッドが存在したとします。意図していない部分で使用されるとまずいので、ヒューマンエラーが発生しないように設計から見直してちゃんと対策しましょうという話(多分)。ドメイン駆動設計の知識が必要になる講演だったので、レイヤーを分けることがどう有効になってくるのかという例としても参考にできそうです。最近この辺りの設計について教えて頂ける機会があったので思わぬ収穫。
責務を分離するための例外設計
例外処理の扱いで悩んでおり(投げるべきタイミングとそうでないタイミングの分別とか、通常のエラーとどう使い分けるのがいいんだろうかとか)、解決のきっかけになればと思い参加。Exceptionでどういったバグとして扱うかを分別し、分別した例外のカテゴリからそのコードにはどういったルールが存在するのかを示すという形で解説がされています。悩んでいることに対しての解決の種となりそうで、今の自分にとって貴重な講演でした。
以上になります。時間の都合上聴けなかったんですが、良いテストコードを書くためのガイドライン〜作成から運用まで〜も参加してみたかった。
おわりに
初めてかつぼっち参加だったんですが、めちゃめちゃ良かったです。今の自分の悩みに対しての講演が多数あり、同時間帯で開催されている講演の取捨選択を何度もしました。
巷では駆け出し技術者が行ってもいいのかな?という話もあるようです。もう駆け出しとは言えない(言いたいですが)立場からではありますが、初学者向け講演も沢山ありますし、企業ブースで開催されているイベントをラフに楽しむこともできるので、少しでも興味があれば行ってみて損はないのではないでしょうか。現状無料ですし。
来年も東京開催や近場開催の時は顔が出せればいいなと思います。その時にはもう少し講演内容について深く理解できるような自分になれているといいですね。
スピーカー及びスタッフの方々、ありがとうございました。
コメント