計算処理ルーチンを実装している中で、「構造体をまったく別物にしたい」と言われたときの対応。
状況
- データや設定を構造体で定義
- 複数のソースとヘッダでその構造体を使用
- ファイルスコープstatic関数: 33個
- public関数: 9個
- テスト駆動開発で実装してきたのでテストできる環境がある
選択肢
- 今あるソースを書換えていく
- 欠点: 構造体変更時のコードの破損に気づかない
- 欠点: 破損したときに「正しい値は何か」を調べるのが難しい
- 新しいソースを作って、そちらで実装していく
- 利点: 元環境と比べて、おかしいところを突き止められる
5時間で変更できた。
去年の自分は方法1を採用していて、同じような作業の場合数日を要していた。
- テストは大事
- どう進めるかの検討も大事
もっといい方法はあるだろうか?
- gitでbranchを切り替えながら比較するというのはどうか
- branch切替え時のコンテキストスイッチに自分が対応できるかどうか
- 旧コードの実行ファイルを作っておくのはどうか
- 比較する時に詳細を追うのは難しそう。