#phperkaigiPHPこんにちは。2018というイベントで登壇してきました。「PHPStanで始める継続的静的解析」ということで、メルカリで使用しているPHPStanというツールについて解説しました。phperkaigi.jp発表内容を短くまとめるとメルカリではPHPStanというツールをCIフローに組み込み、PHPコードの静的解析を行ってコードの信頼性向上に努めています。PHPStanはautoloadファイルを解釈し、一部のコードを実行することで解析の高速化を行っており、よくできています。いえ、PHPに対して可能な解析に限界はあるので、テストも合わせて行っていきましょう。大事なのは、品質向上のアプローチが用意され、心配せずにリリースできることです。autoloadを認識するということスライドの中でも触れていますが、"静的"解析ツールにもかかわらずautoloadを解釈するという機能はかなり画期的です。autoloadを使わずに静的解析をしようとすると、おそらく全部のプロジェクトファイルを読み込まない限り解析ができません。単発で「src/A/B/C.phpだけチェックしたい」というときもsrc配下とvendor配下全部のファイルを読み込むことになり、非常に時間がかかります。autoloadベースで読み込むと、不要なファイルは読み込まなくなるため、解析速度が向上します。Makefileが依存関係を辿って、必要な部分だけビルドするようなイメージに近くなります。(Phanというツールはautoloadを解釈しませんが、プロセスを常駐する機能があり、そこで高速化を図っているようです)プロジェクトがcomposerベースでなくても、独自のオートローダーを書いて読み込ませてもいいですし、何なら全PHPソースをrequire_onceしているファイルを一個作ってオートローダーとして読み込ませても構いません。設定の柔軟さという意味でも、autoloadは素晴らしいと思います。今回が初めてのイベントということでしたが、前夜祭から盛り上がっていて、とても気持ちよく話すことが出来ました。メルカリでは、今でもサーバーサイドロジックの大部分はPHPで動作しています。PHPコードの品質にテストが重要なことに代わりはありませんが、品質向上に使えるツールは積極的に導入し、高速な開発を続けていきたいと思います。PHPを使った大規模プロダクトの開発にご興味のある方のご応募、お待ちしております。InternshipでSpannerのSQLパーサ・型チェッカを作りました!こんにちは。MONTHの16日目の記事です。Day)を開催しましたこんにちは。採用情報メルカリは常に優秀なソフトウェアエンジニアを募集しています。ご興味を持たれた方はぜひご応募ください。skills月別アーカイブスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。