IT-Q

同期実行をキュー実行に変えると、ユーザーから見て何が変わりますか。

ユーザーは待たされなくなる代わりに、終わったかどうかがその場で分からなくなります。同期ならその場で出せたエラーを後から通知する必要があり、状態表示とセットで設計します。

面接官が見ているのは非同期化が何を解決するのかの補強。

これは「どういう処理をキューに逃がすのが妥当ですか。」への追撃質問です。

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

  • 待たされなくなる代わりに、成否がその場で分からなくなる
    その通りです。だから処理中の状態表示や完了通知をセットで設計する必要があります。
  • 処理そのものが速く終わるようになる
    処理時間は変わりません。待つ人が変わるだけです。
  • 失敗しなくなる
    失敗はします。しかも画面に出ないぶん気づきにくくなります。
  • サーバーの負荷が下がる
    ピークをならす効果はありますが、総量は変わりません。ユーザー視点での本質は「待たされない代わりに結果が見えない」ことです。

面接官は何を見ているか

  • レスポンスが即座に返る点を挙げた
  • 結果が即座には分からなくなる、という代償に触れた
  • 失敗をユーザーに伝える手段が別途必要だと気づいた

模範解答

ユーザーは待たされなくなりますが、代わりに「終わったかどうか」がその場では分かりません。同期なら失敗をその場でエラー表示できたものが、キューでは後から通知するしかない。だから、処理中の状態表示や完了通知をセットで設計する必要があります。速くなる代わりに、UI 側の作りが増えるトレードオフです。