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