【6人採択!】 PHPerKaigi2022 に8人全員で合計12個のプロポーザルを提出しました【全員インフルエンサー】

f:id:yamotuki:20220119120026p:plain

※この記事は採択発表の前に書いております。採択発表後に一部追記しました。
結果、6人が採択され、発表することになりました!

こんにちは。エンジニアの鈴木(@yamotuki)です。
今年もPHPerKaigiの時期がやってきました!

弊社では、去年はエンジニア全員でプロポーザルを出し、全員が採択されて発表を通して盛り上げることができました。(一昨年はひっそり私だけ参加しておりました)

今年はプラチナスポンサーとしても協賛しています。

「スポンサーチケットがあるのでトーク採択されなくてもいいや」なんてのは甘い!
弊社メンバーは「全員インフルエンサー」のバリューを胸に、エンジニアであるなら発表で参加したい! そんな気持ちでプロポーザルを提出しております。

8人で出した全12個のプロポーザル、全て紹介します。
さあ、何個採択されるのか?!
採択されて欲しいものがあったら清き1票をお願いします! 盛り上げていきましょう!

※【採択】【不採択】を追記しました。
※紹介順序は順不同

【採択🎉】(LT)Predefined Interfacesを使って便利な独自クラスを作りましょう!

CTO荒井さんによるプロポーザル。「最近コード書いていないのでネタが無い」などとと言いつつしっかり出してきてます。流石。

皆さんはPHPでの開発でPredefined Interfaces(定義済みInterface)を使っていますでしょうか?PHPにはIteratorやStringableといったシンプルですが便利なInterfaceが用意されており実装することで、独自のクラスをPHPのプリミティブな型と同様に扱うことができます。どうやってPredefined Interfacesを使うのか、どんなメリットがあるのかを解説します。

https://fortee.jp/phperkaigi-2022/proposal/2c8b0e09-b321-49ba-89c7-d9b25ecc844e

【採択🎉】(LT)PHPの緩やかな比較の実態

入ったばかり20歳國村さんによる発表です。
「おいおい最近の若い人はPHPの内部実装にも詳しいのかよ...」そんな風に思ったおじさま/おばさま方、ここでしっかりPHP内部構造も学んでおきましょう。

みなさんよくご存知の通り、PHPには等価演算子が2つあります。
「==」と「===」です。
前者は緩やかな比較、後者は厳密な比較が行われます。
PHPやJavaScriptに馴染みのある方ならよくご存知だと思います。

言語問わずよく使う演算子の1つである等価演算子ですが、実際の言語仕様は知っていても
内部の実装は知らないなんてことはよくあると思います。

今回はみんな嫌いな緩やかな比較の実装がどこにあるのか、そしてどんな実装がされているのかをお話しようと思います。

https://fortee.jp/phperkaigi-2022/proposal/3f638a7b-3e63-4a34-a14e-5658011bb60c

【採択🎉】(LT)気づいた時にリファクタしよう!Laravelのデータベースクエリを最適化するTips

塚原さんによるプロポーザルです。 弊社で長年の負債だった部分をちびちび改善しようという取り組みについてですね。メンバーみんなで細かく改善すれば大きな問題も怖くありません。

みなさんはパフォーマンス改善のためにアプリケーションの最適化に取り組んだことがありますでしょうか?
何もデータベース構造を再構築したりと大規模な改修することだけが最適化ではありません。機能実装のついでに関連処理をリファクタリングしてあげるだけでも十分な最適化になります。

このトークでは気づいた時にちょっとリファクタできる程度のデータベースクエリの最適化Tipsを解説いたします。
5分間で可能な限り詰め込んでお届けします!

こんな方におすすめ

業務でLaravelを利用されている方
日頃からパフォーマンスを意識した実装をしたい人

https://fortee.jp/phperkaigi-2022/proposal/3a75fecf-0165-481f-9dfd-0f2959e699ed

【不採択🥺】(レギュラートーク)Laravelのデータベースクエリを最適化するためのヒント

塚原さんの上記LTのロングバージョンという位置付けですね。
発表が終わったらPHPer共通の悩みであるクエリ最適化について、ヒントを元に話が盛り上がりそうですね!

みなさんはデータベースクエリのパフォーマンスを意識して実装されていますでしょうか?
実装した当初は軽快に動いていたアプリケーションもサービスの成長とともに少しずつ遅くなっているかもしれません。あるタイミングで最適化プロジェクトを発足させたり、日々のコードレビューで指摘し合う際に役立つヒントをお届けできればと考えています。

このトークではデータベースクエリ最適化のヒントをサンプルコードを交えて解説いたします!

こんな方におすすめ

業務でLaravelを利用されている方
サービスが成長してきたので、クエリの最適化をしたい人
日頃からパフォーマンスを意識した実装をしたい人

https://fortee.jp/phperkaigi-2022/proposal/b17f350f-8e58-42b2-8276-1021d9769fff

【採択🎉】(LT)PHPスカラー型をクラスでラップして便利に使えるようにするライブラリ「Stannum」を作った話

弊社期待の新メンバー、大石さんによるLTです。 自然発生的に「大石大活躍」などというスタンプが発生するくらい活躍してくれてます。そのレベルの高さが垣間見えるLTですね。

PHPは言語仕様上、stringやintegerといったスカラー型にRubyやPythonのような他の言語のようにメソッドが生えておらず、手続き型のAPIを用いてそれらを操作する必要があります。
しかしながら、メソッドが生えている方が便利な場面もあり「そのように書けたらなあ...」と思う事もあると思います。
これらを達成するのにエクステンションを用いて言語仕様を拡張しスカラー型にメソッドを生やす事も出来ますが、今後の言語仕様の追加や変更に追従しなければならないなどの点を考慮して、純粋なPHPのクラスでスカラー型をラップしてそこに便利に扱う為の関数を生やしたライブラリを作った話をしたいと思います。

https://fortee.jp/phperkaigi-2022/proposal/ee394d8a-b03d-4226-aef1-f512a42ac328

【採択🎉】(LT)【Laravel】サクッとN + 1問題を見つけて倒しチャオ!

津崎さんによる”チャオ”シリーズです。 この言葉がついている時には勢いがすごいLTになるのでは、と期待できますね。楽しみです。

N + 1問題とは、ループ処理の中で都度SQLを実行してしまうことで必要以上にSQLが発行されてしまい処理が遅くなってしまう問題です。
N + 1問題が存在していても、ユーザーに影響のない程度の処理時間なら改修する必要はありません。
しかしながら、データ量が増えたりページへのアクセスが増えることで後から問題になってしまうこともあります。
今回は、そんなN + 1問題をサクッと検出して、問題が発生する前にN + 1問題を撲滅する方法をご紹介します。

https://fortee.jp/phperkaigi-2022/proposal/4307d420-7ef0-4b69-b3f7-005b72bf87b0

【不採択🥺】(レギュラートーク)保守容易性指数とコミット数でバグりやすいファイルを見つけてテストを書こう

同じく津崎さんによるレギュラートーク
めちゃめちゃ実用性高く、面白そうです。これは採択間違いないでしょう。

みなさん、あなたが保守しているコードベースで一番バグが混入しやすいファイルが何か知っていますか?

このトークでは、保守容易性指数(Maintainability Index)とGitHubのコミット数を用いて、
保守性が低くて、よく変更されているファイル(= バグが混入しやすいファイル)を見つけ出す方法についてご紹介します。

https://fortee.jp/phperkaigi-2022/proposal/f675960f-1ed9-4027-b36b-0aaa6263abf0

【不採択🥺】(レギュラートーク)PHPer がスクラムマスターに任命されたら 〜ピンチは突然訪れる〜

弊社の「真のリーダー」であるスクラムマスター濱田さんによるトークです。
皆さんもスクラムマスターに任命されることは”まれによくある”と思いますが、ここでしっかり予習しておきましょう。

先行きの不透明な開発プロジェクト。
鳴り止まない障害アラート。
挙句の果てに、リリースした機能がユーザーにあまり使われていない!
そんな課題を解決すべく、ごく普通の PHPer がある日突然スクラムマスターに任命されて...!?

エンジニアがスクラムマスターに任命される。
まれによくあるイベントです。

このセッションでは、

スクラムとは何か
冒頭で挙げた課題に対して、スクラムではどのように立ち向かうのか
エンジニアとしてどのような能力をスクラムマスターに活かせるか
逆に注意すべきポイントは何か
といった内容を、 PHPer からスクラムマスターに転身した自分の体験を踏まえて紹介します。

https://fortee.jp/phperkaigi-2022/proposal/8c1b5110-7b4c-4c97-a359-66821eb68cee

【不採択🥺】(レギュラートーク)一人のPHPerからプロジェクトマネージャーになる道筋

わたくし鈴木のレギュラートークです。
PM業務に必要なマインドセットとスキルセットについてお話しします。

プロジェクトマネージャー、なりたいですか?

いわゆる「PM」は「プロダクトマネージャー」と「プロジェクトマネージャー」の二つを内包することが多いですが、ここでは後者の「プロジェクト」をマネージする(なんとかする)人についてです。
前者の「プロダクトマネージャー」はPdMなどとも呼ばれ非エンジニアがなることも多いですが、プロジェクトマネージャー(以下PM)はエンジニアが担当することも多いのではないでしょうか。

プロジェクトには数日で終わるものも、数ヶ月かかるものもあるかと思います。最初は単に小さなタスクをこなしていたエンジニアがどうやったらPM(=プロジェクトを"なんとかできる"人)になれる能力がつくのでしょうか?

本セッションではPMの仕事内容と、それに対応するスキルセットの身につけ方についてお話しします。

【注】会社によりPMの職務範囲は変わるので、私の観測範囲内でのお話です

https://fortee.jp/phperkaigi-2022/proposal/5f36f1e1-f065-43e6-babb-3161c5acdb62

【不採択🥺】(レギュラートーク)[Github Dependabot] 「自動作成されたPRだけで脆弱性対策バッチリ」なんて思っていないですよね?

こちらも鈴木によるプローザルです。
セキュリティ領域はセンシティブな情報が多い中、ネタを捻り出しました。

みなさん、脆弱性対策してますか?

コードに潜む脆弱性対応は以下の二つに分類できるかと思います。

自分たちで書いたコードの脆弱性
依存ライブラリ・フレームワークの脆弱性
このうち後者では、Github を使っているならば Dependabot 機能による脆弱性検知が使えます。
Dependabot security updates 機能を有効にしておくと、勝手にPRを出してくれますよね。
便利です。これの内容チェックしてマージするだけ。
めでたしめでたし。

・・・とならないので注意です。
実は、検知していても自動PRになっていない脆弱性があります。
「PRになるのはcriticalレベルのもの。多分そうだろう。」などと勘違いしておりました。
危ない危ない。

本セッションでは Dependabot の説明、注意点、運用方法のケーススタディをお届けします。

https://fortee.jp/phperkaigi-2022/proposal/d922b304-beb8-46c1-8558-9952abe7cb95

【採択🎉】(レギュラートークPHPコードを消すライブラリを作った

「全員インフルエンサー」のバリューの旗振り役、久保田さんによるプロポーザルです。
ええ? PHPで feature toggle で分岐しているのに php-del を使っていない?! いますぐ使った方がいいですよ!
このセッションで予習しておきましょうね。

kubotak-is/php-delというPHPコードをComposer Bin Commandを利用して消すライブラリを作成しました。
特定の形式でコメントを書いておくと、そのコメントを基準にPHPコードを削除します。
なぜそんなライブラリを作ったのか、その実装はどのようになっているのかを紹介します。
このセッションではComposer Bin Commandの作り方や自作のComposerライブラリをpackagistで公開する手順などを学ぶことができます。

https://fortee.jp/phperkaigi-2022/proposal/0efa9d19-aa48-4a3f-898e-7d5ca9c43db6

【不採択🥺】(LT)Composer Bin Commandを作ろう!

こちらも久保田さんによるLT。上のコマンドを作成するときに得られた知見を話してくれそうです。

PHPUnitやPHPStanのようなComposerでインストールしてコマンドで呼び出すライブラリ・アプリケーションの作成方法を紹介したいと思います。

https://fortee.jp/phperkaigi-2022/proposal/f5b99ae5-a4e7-4878-9ebb-382b260a0cf0

終わりに

いかがだったでしょうか?
面白そうと思ってくれたプロポーザルがありましたら、ぜひ清き1票をお願いします。
採択・不採択決定後はぜひ当日をお楽しみに!