土台を取り替える
あるプログラムを作ってから、そのプログラムの土台の部分(データの持ち方とかデータ構造とか)を変えたくなった
新規プロジェクトでやるか、現状のコードから変えていくかをだいぶ悩んだ
小さく検証すべき、となったがらそれをどうするかがわからなかった
今回は議論の末に「
インターフェース」という言葉が出てきて、プロジェクトが進んだ。
まずデータを保存するインターフェースを特定し、そのインターフェイスに枝をつける
一時的にデータは二重に持つ形になる
次にそのデータを利用するインターフェースを特定し、それを付け替える
この方法だと、ゼロから作り直すのと違ってBの部分がある種のテストとして機能する
今回はTypeScriptで書いてたので型チェックがとても手助けになったし、
切り替えた後に振る舞いが変わらないかどうかもテストになる
やってる過程でa'の実装にも色々見落としが発見されたのでBを足場にすることができて良かった
ゼロから作り直してた場合はB相当のものを実装するまで設計ミスに気づかなかっただろう