image あるプログラムを作ってから、そのプログラムの土台の部分(データの持ち方とかデータ構造とか)を変えたくなった 新規プロジェクトでやるか、現状のコードから変えていくかをだいぶ悩んだ

今回は議論の末に「インターフェース」という言葉が出てきて、プロジェクトが進んだ。 まずデータを保存するインターフェースを特定し、そのインターフェイスに枝をつける 一時的にデータは二重に持つ形になる 次にそのデータを利用するインターフェースを特定し、それを付け替える

image この方法だと、ゼロから作り直すのと違ってBの部分がある種のテストとして機能する 今回はTypeScriptで書いてたので型チェックがとても手助けになったし、 切り替えた後に振る舞いが変わらないかどうかもテストになる

やってる過程でa’の実装にも色々見落としが発見されたのでBを足場にすることができて良かった ゼロから作り直してた場合はB相当のものを実装するまで設計ミスに気づかなかっただろう