多くのテストケースを回すCI環境では、特定のメソッドがボトルネックとなり、テスト実行時間に大きな影響を与えることがあります。本セッションでは、Xdebug Profileを活用して、PHPUnitが呼び出すコード内のパフォーマンスを阻害するメソッドを特定する方法を紹介します。
頻繁に呼ばれるメソッドの実行時間がわずかに増えた場合でも、1000回呼ばれれば無視できない遅延となり、CI全体のパフォーマンスに影響を与えます。Xdebug Profileを使えば、こうしたボトルネックを簡単に見つけ、CIのパフォーマンス改善に繋げることが可能です。
以下についてお話しします:
ぺちこん参加回数2桁になっている私が、「ぺちこんは楽しいから、もっといろんな方に知って欲しい!参加して欲しい!」そんな思いで声をかけ、毎年初参加者を誘うことに成功しています。
ぺちこん自体を知らない方、名前は知っているけれど踏み出せない方、いろいろいらっしゃる中で、私が日頃から行っている声かけやお誘いポイントをお伝えします。
「生産性改善のために、コードレビューを最優先にやる」という言説を耳にしたことがあるでしょうか。
コードレビューをしている間は当然、自分が持っているタスクの進行が止まってしまいます。
それでもコードレビューを優先した方がいいと言われるのはなぜでしょう?
その問いに対し、本トークでは「我々の仕事とは/仕事を終わらせるとは何なのか?」という観点から答えていきます。
ちなみに「すべての職場や環境においてコードレビューを最優先にすべき」という主張ではありません。
これについても「我々の仕事とは/仕事を終わらせるとは何なのか?」という観点で説明します。
このトークでは、OPcodeを読み進めていたはずが、気づけばPHPのソースコードを読み込むことになった体験を共有します。
当初はパフォーマンスや最適化を目的にOPcodeを読んでいましたが、調べるうちに言語の内部構造にまで興味が広がっていきました。
そのプロセスを具体例とともに振り返りながら、技術的な知識に加え、その過程で得た学びや気づきについてお話しします。
不確定な部分のコードを何度も修正する際、どこを変更すれば良いか迷ったり、実際に読んでみないと見積もりができない経験はありませんか?
そこで効果的なのがリファクタリングです。
私は以前、「とりあえず動く」コードを重視していましたが、設計感覚やドメイン知識が身についてくることにより、読みやすく変更に強いコードを書くことが楽しく感じるようになりました。変わらない部分と変わる部分を分離し、リファクタリングすることで、自分にも他者にも与えるポジティブな影響と、リファクタリングを楽しむためのポイントを話します。
話すこと
「パフォーマンスチューニングは複雑で手間がかかる」と思っていませんか?
実は、コードの大改修をせずとも、仕様変更と軽微な修正だけでも大幅な改善が可能です!
本LTでは、13時間かかっていたバッチ処理を、たった一部の仕様変更で5時間に短縮した実例を紹介します。パフォーマンスチューニングは難しくない!
これまでPHPにおけるテストフレームワークといえばPHPUnitが主流であり(PHPSpecやCodeception等もありますが普及範囲が広いものに言及します)、ほとんどのPHPを使ったシステム開発で、テストフレームワークを導入していれば一択といっても過言ではないと思います。
ですが、近年(といっても2021年の登場ですが)流星のごとく登場した、テストフレームワーク「Pest」を、弊社では取り扱うこと決め、その導入からテストコードとして認められるマージされるまでの実録を爆速紹介いたします。