IT-Q

「サイトが重い」と報告されました。何から調べますか。

まず重いが何を指すかを特定します。表示までが遅いのか、表示後の操作が重いのかで原因も打ち手も違います。サーバーがHTMLを返すまでと、その後の処理に分けて測ります。

面接官が見ているのは切り分けの順序を持っているか。

よくある答えと、面談でどう見られるか

  • 何が遅いかを特定し、サーバー側かクライアント側かを切り分けてから計測する
    「重い」の中身を確定させるところから始めるのが正しい順序です。
  • バンドルサイズを削る
    効くかもしれませんが、原因がサーバー側なら空振りします。まず切り分けます。
  • キャッシュを入れる
    原因が分からないまま入れると、古いデータが出る別の問題を抱え込むだけになります。
  • ブラウザの開発者ツールでリクエストの時間を見て、どちらの問題かを判断する
    具体的な切り分け方を持っています。

面接官は何を見ているか

  • まず何が遅いかを切り分けようとした
  • サーバー側かクライアント側かを分けて考えた
  • 実際に計測してから手を入れると言えた

模範解答

「重い」が何を指しているかを特定するところから始めます。表示されるまでが遅いのか、表示後の操作が重いのか、特定のページだけなのか全体なのかで、原因も打ち手も違います。

切り分けは大きく2つです。サーバーが HTML を返すまでが遅いのか、返ってきた後のブラウザ側の処理が遅いのか。ブラウザの開発者ツールでリクエストの時間を見れば、どちらかは分かります。

サーバー側が遅ければデータ取得を疑い、クライアント側が遅ければ JavaScript の量と実行時間を疑います。

いずれにせよ、計測してから手を入れます。「たぶんここだろう」で直すと、効かない上に何が効いたか分からなくなります。

ここからどう深掘りされるか

この問いに答えられた場合、面談は次の質問に進みます。