PHPカンファレンス 2020を見たので簡単な感想を
コロナなのでオンライン。オンラインのカンファレンス見るのは初。今年そもそもカンファレンス初。あと~関西じゃないPHPカンファレンスも初だな。
ほんと簡単な感想です。アーカイブぜんぶ残るみたいなので興味あるセッションはアーカイブ見ましょう。
スライドへのリンクは、すでにまとめてくれてる方がいるので張らない。
https://qiita.com/ucan-lab/items/c644675ea7da4093c664
前夜祭
「Laravelの黒魔術」が気になったので前夜祭も。オフライン開催だとなかなか行けないが、オンラインだと気軽に行けるのでここは利点。
Laravelの黒魔術
最近もうLaravelのことなら大体わかったぜ、な気持ちだったが軽くノックアウトされた。ほんとに黒魔術的な話ばかりで、最後のHigher-Order Messages以外はまったく知らない話だった。
AliasLoaderはちょっと読んでたのに、ファサードクラスをファイルからオンザフライで作るみたいなことやってるところに気付かなかったのはほんと負けた気分。
時間が足りなくて最後の1つがだいぶショートカットされたのは残念だったが、しっかり黒魔術してて楽しい話だった。
SPAのAPI開発の「やりづらさ」をDDDとオブジェクト指向の発想で解決する
SPAのAPI開発ではまりがちな問題を、オブジェクト指向やドメイン駆動設計のやり方で地道にしっかり解決していこう的な話かな。SPAはようわからんので……。
APIの機能は、ユーザ(≒顧客)のではなく、フロントエンドの要求に合わせて作ることが大事、そうした方がサーバサイドでもいい感じでやれる、みたいな話は普段サーバサイドのコード書いてても似たようなこと考えるので納得できた。
あともちろん、引数増やして混乱したメソッド作るのではなく機能ごとにたくさんメソッド作れをAPIに適用するみたいな話も。APIも普通のメソッド・関数も、最終的には同じように扱うのがいいのかもしれない。
本編
PHPの今とこれから2020
基調講演なのかな。PHP 8の新機能や変更点の話が割と多かった。いろいろ使いたい機能あるので早く仕事で使いたいところだがさて。
PHP WEBアプリケーション設計入門――10年先を見据えて作る
ドメイン駆動設計入門の著者によるセッション。DDDは特に関係ない、むしろレイヤードアーキテクチャ方向。10年後に困らないためにフレームワークに依存せず、一方向の依存できれいに設計してやろうという話。
すごく面白かった。とはいえ異論もあって、個人的には10年後に困る理由ってフレームワークへの依存じゃなくて、単純に設計・実装が駄目駄目なのが原因だと思うので、フレームワークはもっと活かして行っていいと思う。
スポンサーLT
「トイサブ!」さんにぜんぶ持って行かれてた。
ゼロベースから Laravel を用いた API 実装オートメーション
この時間帯失敗して、Track1とこれで迷ってふらふらしたりして最初の3分の1ちゃんと聞けなかった。工数をがっつり削減するために高度な自動生成するという話ですごい趣味に合った話なので、ちゃんと最初から聞けばよかった。
内容的にはもっと実装レベルの話を聞きたかった。特に気になるのが自動生成って基本的に危ないものだと思ってて、特にこれほど大量にコードを生成するような場合、自動生成後のコードと同等の機能をライブラリとして作った上でライブラリで定義を読んで動かす方が安全だと思うんだけど、どうしてそういう方向にならなかったのか、ってあたりで、そのためにももっと具体的なところが知りたかった。
このセッションでは通信環境の問題か音質がかなり厳しかったのは残念。オンライン開催のデメリットか。
PSRで学ぶHTTP Webアプリケーションの実践
ちょっと想定レベルがわからなかったかな。最初の半分なしで始めてよかったような。最後時間余ってからの話がいちばん面白かった。
Composer 2.0って何?どう変わるの?読んでみました!
Composer 2の高速化が実装レベルでどうしたなのかみたいな話。コンパクトにまとまっていてよかった。
前ちょっとした事情からComposerのメタデータファイルの構成はある程度把握してたので、より楽しく聞けた。
最後ちょっと駆け足になったのは残念。
今こそ理解する、PHPの日時計算
思ったより基本的な話だった。昔はdate()
やらstrtotime()
やら使ってて、そこから一足飛びに今ではCarbonなので、DateTime周りの話を聞けたのはよかった。
効果的な静的解析のCI導入パターンを求めて
静的解析をCIで導入する話なんだけど、単に導入するだけでは駄目で、うまく運用していくためにはどうするか、についてのパターンをめっちゃいい感じに説明してくれた。
ちゃんと導入したことはないけど、とりあえず人の書いたコードとかどうこうする前に使ったくらいはあって、じっさいそういうときに最初からすごいエラーが出てまあ大変なんだけど、そういうのどうするかみたいな話もしっかりあってよい。これ見たら俺も静的解析導入できそう! となる。
今回の見た中でベストだったかも。
微妙な違いも見逃すな!ビジュアルリグレッションテスト!
割とフロント寄りの話。そっちは専門じゃないんだけど、画面をそのままテストする系の話は興味がある。昔HTMLの差分をそのままテストするようなツール書いたことがあって。
Atomic Designとかも名前聞いたことある以上ではないくらいさっぱりだったけど、その辺も必要なところは説明してくれた上での話だったのでわかりやすかった。
フロントエンドはいろいろクールだなあとか、それでもこういうテストやるには地道にいろいろ用意必要みたいで大変そう、とかそういう感想。
LT
基本時間内でまとめきっていてすごかった。内容もどれもよく、LTじゃなくてフルタイムのセッション聞かせてくれ、というのがいくつもあった。ここは印象深いいくつかだけ感想。
エンジニアでもできる簡単親切エラーUI
フォームでエラーをどう見せるかの話。ポップで動きがあっていいスライド。
誰にどうしてもらうためのエラーか、それを全うするためにどう表現するか、というまあ基本的な話ではあるんだけど、スライドのよさもあってとにかくわかりやすい。
チームメンバーをエンパワーメントしよう!レガシープロジェクト改善事始め
あら、今見るとスライドが権限なくて見れないとかなってるな。
チームをよくするために外堀から埋めるみたいな話。こういうツールでこうやっていくというだけではなく、やりやすい・やってもらいやすいところから少しずつ、じっくりやっていかないと駄目だよー、的な話。だったはず。
自分は基本一人でやるんだけど、たまにほかのプログラマと仕事するときにもっといろいろなんとかしたい! と思ってはなかなかできずに、みたいなことが多いので、こういう話はほんと参考になる。
静的解析から始める負債コード解消
静的解析でCIなセッションもあったけどこっちはちょっと違って、PhpStormのInspection機能を使って、すぐに始められるという売りの話。
俺はVimだけど最近はvim-lsp + Intelephense使ってて、これでもちょっとした型の問題なんかは見つけてくれて便利だけど、PhpStormのInspectionはさらに自前でこういう感じのコードがあったらエラーにしたい、みたいなことができるらしくてすごい。
オンラインカンファレンスのよかったところ・いまいちだったところ
よい
- 前夜祭に気楽に行ける。大体行けるカンファレンスが大阪で、それでも片道2時間くらいはかかるので、なかなか前夜祭までは……という感じだったがオンラインなら片道0秒なので余裕。
- トイレに困らない。ある程度大きなカンファレンスでは基本トイレは並ぶのでつらいけど、オンラインなら自宅トイレなので余裕。
いまいち
- 見るセッションに迷うと、簡単にあっち見てみたりこっち見てみたりができるのでふらふらしがち。これはほんとよくないので、事前に見るの決めて、よほどのことがない限り変えないのがよさそう。
- ネットワーク状況次第で音声がいまいちだったりすることも。
- 懇親会は……オンラインのはちょっと気後れするかな。今回行かなかったのはそれだけじゃないけど。
最後に
楽しかった。オンラインどうかな、途中で飽きないかなと思ったけどそんなことぜんぜんなかった。
仕事ではすごいプログラマと仕事するみたいなこともなく、ほっとくと自信過剰になっちゃうんだけど、カンファレンスはそういうのすべてリセットしてくれて、お前はまだまだなんだってわからせてくれるから楽しい。