「第149回 PHP勉強会@東京」で登壇してきました
始めに
2023-02-15(水)に GMO Yours で行われた 第149回 PHP勉強会@東京 で登壇してきました。 現地には30人、オンラインの視聴者は20人くらいで非常に和気藹々とした勉強会でした。
GMO Yours に来てます! #phpstudy
— た҉͜け҉͜て҉͜ぃ҉͜𓁈𓈷 (@takeokunn) February 15, 2023
登壇
内容について
phpstan-strict-rulesでよりbetterなphpを手に入れよう というタイトルで話しました。
関連するツイートはこのあたりです。
- https://togetter.com/li/2082268?page=9
- https://togetter.com/li/2082268?page=10
- https://togetter.com/li/2082268?page=11
- https://togetter.com/li/2082268?page=12
- https://togetter.com/li/2082268?page=13
YouTubeのアーカイブも残っているので気になる人はこちらから見てください。
https://www.youtube.com/live/k0GkmSYhtrQ?feature=share&t=7526
補足など
Emacsと申します
PHPStan Tシャツについて
いつぞやのイベントでたっどさんから託されたTシャツ。 日本で数人しか持っていない実はレアなやつ。
日本で数人のPHPStanを着こなしている男 #phpstudy pic.twitter.com/XOW4FRp535
— にゃんだーすわん (@tadsan) February 15, 2023
php-src
を毎朝 git pull
していることについて
自分の好きなプロジェクトを毎朝 git pull
して変更を見る行為は季節の移ろいを感じられてお勧めです。
hanhanさんの「今週の PHP」を毎週かかさずチェックしよう
hanhan
さんいつもありがとう。
https://t.co/fGEjRAZuUN #今週のPHP はこちらです。 #phpstudy
— Ryo Tomidokoro (@hanhan1978) February 15, 2023
皆さんは会社や個人のプロジェクトでPHPStanを入れていますか?
会場は半分くらいの方が手を上げていました。
PHPStanのlevelは5より上か下か
会場はさらに半分くらいの方がlevel5よりも上と手を上げていました。
PHPStanを入れて良かったかどうか
おおむねみなさん手を上げていました。
初期開発でPHPStan Level Maxを選択
既存のコードがない場合ほど制約を厳しくできて良いですね、という声がちらほらありました。
TypeScriptでも noImplicitAny
を有効にするには初期じゃないとできない等、既存のコードベースがあるかどうかはかなり大きいです。
emptyについて
isset
empty
is_null
の比較表をどう頑張っても覚えられないという話をしました。
出典: PHP isset, empty, is_null の違い早見表
また、 empty
はそもそも使わない方が良いよねっていう共感の声もありました。
phpstanは初心者PHPerにこそ使ってほしい
PHPはとにかく落し穴が多い言語です。 ベテランのエンジニアほどPHP特有の落し穴について熱く語りがちなのですが、そもそもコードレビューで注意するよりも静的解析で検知してCIで落とすべきだと考えています。
ガードレールを敷いてあげて安全にコードを書ける環境作りこそ、駆け出しのエンジニアに対して我々経験者がやることなのではないでしょうかという話をしました。
ただ自分も年齢的には若手に分類されるので、会場にいるベテラン達には頑張ってもらいたいというあおりもかましてきました。
phpstanでちゃんと型をつけることによってJITが効くようになり高速化が期待できる
PHP8から追加されたJITについて学ぼう! にも書いたんですが、PHPのJITコンパイラは実行時に型情報を十分に取得してマシンコードを吐き出します。
なのでphpstanで暗黙の型変換を許容しないコーディングをしておけばJITにも優しくなるという得点付きです。
コーディングについて
いきなり良いPHPを書こうとせずにまずは既存のコードと足並みを合わせて書くことも重要だと考えています。 なのでemptyを使うべきではないものの、いきなり削除するのではなくて、「emptyを削除する」という合意をチーム内で取ってから置き換えていくべきです。
終わりに
PHP勉強会を配信で部分的に見たことは過去にあったが、オフラインで参加するのは初でした。 どんな人がいるのか不安でだったけどいつも見かけるPHPerが何人もいて安心しました。
発表も多少ネタを入れたのでスベったら嫌だなと不安に思っていたが、会場が非常に暖かい雰囲気だったのもあり無事に終わってホッとしています。
PHP勉強会はPHPに精通してなくても参加できるイベントであり、むしろこれからPHPを学びたい人向けの発表の方が多いので経験が少なくても楽しめるでしょう。 初心者にも優しい勉強会なのでぜひPHPに興味がある人は参加してみてはいかがでしょうか?