IT-Q

テストも仕様書も無い既存コードに機能追加を頼まれました。最初にすべきことはどれですか。

まずローカルで動く状態を作ります。確認できないと何も判断できないためです。次にルート定義から入り、コントローラ、モデル、DBスキーマの順に、関係する範囲だけを辿ります。

面接官が見ているのは参画時の現実的な進め方。このシナリオの核。

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

  • まずローカルで動く状態を作り、追加する機能に関係する既存の動作を実際に触って把握する
    動かせないと確認ができないので最優先です。コードは routes/ からコントローラ、モデル、スキーマの順に辿ります。
  • コード全体を最初から最後まで読んで理解する
    規模によっては終わりません。触る範囲だけに絞ります。
  • まず動くコードを書いて、動いたら細部を確認する
    既存の何を壊したかが分からないまま進むことになります。
  • 既存コードが読みにくいので、先にリファクタリングする
    テストが無い状態でのリファクタリングは、壊したことに気づけません。

面接官は何を見ているか

  • いきなりコードを書き始めない、と言えた
  • 影響範囲を先に把握する手順を語れた
  • 動く状態を再現する(ローカル構築)に触れた

模範解答

まずローカルで動く状態を作ります。動かせないと確認ができないので最優先です。次に、追加する機能に関係する既存の動作を実際に触って把握します。コードは、ルート定義から入って、コントローラ、モデル、DBスキーマの順に辿ります。全体を理解しようとすると終わらないので、触る範囲だけに絞ります。この段階で分かったことはメモに残します。次の人のためでもあり、自分のためでもあります。

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

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