IT-Q

この共通処理は、リクエストのどのタイミングで動きますか。

page や route の処理が始まる前です。対象を絞る設定を書かなければ、基本的にすべてのリクエストが通ります。重い処理を置くと全ページのレスポンスが遅くなります。

面接官が見ているのは実行順序の理解。

これは「全ルートに共通で認証チェックを入れたい。どこに書きますか。」への追撃質問です。

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

  • ルートの処理より前。対象を絞らなければ全リクエストが通る
    だから重い処理を置くと全ページが遅くなります。
  • ルートの処理が終わった後、レスポンスを返す直前
    前です。だから転送や書き換えができます。
  • 静的なページにはかからず、動的なページにだけかかる
    レンダリング方式では分かれません。設定で対象を絞らない限り通ります。
  • ルートより前なので、ここに重い処理を置くと全体が遅くなる
    影響範囲まで意識できています。置くのは軽い判定だけにします。

面接官は何を見ているか

  • ルートの処理より前だと答えた
  • すべてのリクエストが通り得ると理解している
  • 重い処理を置くと全体に効くと気づいた

模範解答

ルート(page や route)の処理が始まる前に実行されます。対象を絞る設定を書かなければ、基本的にすべてのリクエストが通ります。

ここから導かれる注意点が2つあります。1つは、重い処理を置くと全ページのレスポンスが遅くなること。DBへの問い合わせを毎回入れると、全体に効きます。もう1つは、ここでの不具合が全ページに波及することです。

だから、置くのは軽い判定だけにします。Cookie の有無を見る程度に留めて、本格的な検証は各ルート側でやる、という分担が扱いやすいです。