IT-Q

更新したのに一覧の表示が変わりません。何を疑いますか。

まずキャッシュを疑います。切り分けはDBを直接見て、実際に更新されているかの確認からです。更新されているなら表示側が古いキャッシュを見ているので、再検証を書き足します。

面接官が見ているのはキャッシュの存在に気づけるかの補強。

これは「フォームの送信処理はどう実装しますか。」への追撃質問です。

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

  • キャッシュが残っている可能性を疑い、実際にDBが更新されているかを確認する
    切り分けの順序が正しいです。更新されているなら表示側の問題に絞れます。
  • 更新処理が失敗しているので、エラーハンドリングを追加する
    可能性としてはありますが、確認せずに決め打ちしています。まずDBを見て、更新されているかどうかで分岐します。
  • ブラウザのキャッシュなので、リロードすれば直る
    ブラウザ側のこともありますが、App Router ではサーバー側のキャッシュが残っている場合が多いです。「どこのキャッシュか」を切り分けないと対処を誤ります。
  • Server Function は非同期なので、少し待てば反映される
    待っても反映されません。再検証を書いていなければ、キャッシュは残り続けます。

面接官は何を見ているか

  • キャッシュが残っている可能性を挙げた
  • 更新後に再検証していないのでは、と疑えた
  • どこのキャッシュかを切り分けようとした

模範解答

まずキャッシュを疑います。DBは更新されているのに表示だけ古い、という状態です。

切り分けとしては、DBを直接見て実際に更新されているかを確認します。更新されているなら、表示側が古いキャッシュを見ているということです。

対処は、更新処理の中で対象のパスやタグを明示的に再検証することです。Server Function の中で更新した直後に呼びます。

よくあるのは、更新経路が複数あって片方だけ再検証を書いている場合です。管理画面からの更新では反映されるがバッチからの更新では反映されない、といった形で表面化します。