「サイトが重い」と報告されました。何から調べますか。
まず重いが何を指すかを特定します。表示までが遅いのか、表示後の操作が重いのかで原因も打ち手も違います。サーバーがHTMLを返すまでと、その後の処理に分けて測ります。
面接官が見ているのは切り分けの順序を持っているか。
よくある答えと、面談でどう見られるか
- 何が遅いかを特定し、サーバー側かクライアント側かを切り分けてから計測する
「重い」の中身を確定させるところから始めるのが正しい順序です。 - バンドルサイズを削る
効くかもしれませんが、原因がサーバー側なら空振りします。まず切り分けます。 - キャッシュを入れる
原因が分からないまま入れると、古いデータが出る別の問題を抱え込むだけになります。 - ブラウザの開発者ツールでリクエストの時間を見て、どちらの問題かを判断する
具体的な切り分け方を持っています。
面接官は何を見ているか
- まず何が遅いかを切り分けようとした
- サーバー側かクライアント側かを分けて考えた
- 実際に計測してから手を入れると言えた
模範解答
「重い」が何を指しているかを特定するところから始めます。表示されるまでが遅いのか、表示後の操作が重いのか、特定のページだけなのか全体なのかで、原因も打ち手も違います。
切り分けは大きく2つです。サーバーが HTML を返すまでが遅いのか、返ってきた後のブラウザ側の処理が遅いのか。ブラウザの開発者ツールでリクエストの時間を見れば、どちらかは分かります。
サーバー側が遅ければデータ取得を疑い、クライアント側が遅ければ JavaScript の量と実行時間を疑います。
いずれにせよ、計測してから手を入れます。「たぶんここだろう」で直すと、効かない上に何が効いたか分からなくなります。
ここからどう深掘りされるか
この問いに答えられた場合、面談は次の質問に進みます。
観点をすべて押さえられた場合
サーバーが HTML を返すまでが遅いと分かりました。次はどうしますか。一部しか触れられなかった場合
どこで計測すればいいですか。触れられなかった場合
どこで計測すればいいですか。