IT-Q

ミドルウェアに置くのが適切な処理はどれですか。

権限チェック、リクエストのログ記録、多言語切り替えなど、複数のコントローラに共通する前後処理です。適用範囲はグローバル、web や api のグループ、特定ルートの3段階で選べます。

面接官が見ているのは横断的関心事の置き場所を理解しているか。

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

  • 認証・権限チェック・リクエストのログ記録など、複数のコントローラに共通する処理
    その通りです。適用範囲はグローバル・グループ・ルート個別の3段階から選びます。
  • 特定の1画面だけで必要な計算処理
    それはコントローラかサービスクラスに書きます。
  • DB のトランザクション管理
    全リクエストを囲む構成にすると範囲が広すぎます。必要な処理単位で張ります。
  • ビューのレンダリング
    レンダリングはコントローラとビューの仕事です。

面接官は何を見ているか

  • 具体的な用途を挙げた
  • リクエスト前後に挟まる仕組みだと説明できた
  • 適用範囲(グローバル / グループ / ルート個別)に触れた

模範解答

権限チェック、リクエストのログ記録、多言語切り替えなどで書きました。各コントローラに同じ処理を書く代わりに、リクエストの前後に挟み込む仕組みです。適用範囲は、全リクエストに効かせるグローバル、web/api などのグループ、特定ルートだけ、の3段階から選べます。認可のように「全部に効いていないと危険」なものはグループ単位で当てます。

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

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