テストも仕様書も無い既存コードに機能追加を頼まれました。最初にすべきことはどれですか。
まずローカルで動く状態を作ります。確認できないと何も判断できないためです。次にルート定義から入り、コントローラ、モデル、DBスキーマの順に、関係する範囲だけを辿ります。
面接官が見ているのは参画時の現実的な進め方。このシナリオの核。
よくある答えと、面談でどう見られるか
- まずローカルで動く状態を作り、追加する機能に関係する既存の動作を実際に触って把握する
動かせないと確認ができないので最優先です。コードは routes/ からコントローラ、モデル、スキーマの順に辿ります。 - コード全体を最初から最後まで読んで理解する
規模によっては終わりません。触る範囲だけに絞ります。 - まず動くコードを書いて、動いたら細部を確認する
既存の何を壊したかが分からないまま進むことになります。 - 既存コードが読みにくいので、先にリファクタリングする
テストが無い状態でのリファクタリングは、壊したことに気づけません。
面接官は何を見ているか
- いきなりコードを書き始めない、と言えた
- 影響範囲を先に把握する手順を語れた
- 動く状態を再現する(ローカル構築)に触れた
模範解答
まずローカルで動く状態を作ります。動かせないと確認ができないので最優先です。次に、追加する機能に関係する既存の動作を実際に触って把握します。コードは、ルート定義から入って、コントローラ、モデル、DBスキーマの順に辿ります。全体を理解しようとすると終わらないので、触る範囲だけに絞ります。この段階で分かったことはメモに残します。次の人のためでもあり、自分のためでもあります。
ここからどう深掘りされるか
この問いに答えられた場合、面談は次の質問に進みます。
観点をすべて押さえられた場合
読んでいるうちに「ここは触ると壊れそうだ」という箇所を見つけました。どう進めますか。一部しか触れられなかった場合
既存の Laravel コードを読むとき、どのファイルから見ますか。