NISHIO Hirokazu[Translate]
土台を取り替える
あるプログラムを作ってから、そのプログラムの土台の部分(データの持ち方とかデータ構造とか)を変えたくなった
新規プロジェクトでやるか、現状のコードから変えていくかをだいぶ悩んだ
小さく検証すべき、となったがらそれをどうするかがわからなかった

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

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

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

"Engineer's way of creating knowledge" the English version of my book is now available on [Engineer's way of creating knowledge]

(C)NISHIO Hirokazu / Converted from [Scrapbox] at [Edit]