レガシー置換
手が出せない旧実装、リポジトリは分かるがパスが分からないソース、今は止まった過去機能の再利用を、原典にしてテストへ落としてから移す技術実録。Linux から Mac / Windows へ出して TDD し、同じ置換を再現するにはハーネスが要る。
全 7 回(公開済み 7 本)
レガシー置換とは:旧実装を原典にし、先にテストへ落としてから移す
動機は負債返済ではない。他社製で手が出せない、リポジトリは分かるがパスが分からない、今は止まった過去実装を再利用したい。原典は動いている PHP・古い C#・デスクトップ/モバイル。先にユニットと Moq の接続テストへ落とし、実機と実紙だけ人に残す。シリーズ「レガシー置換」第 1 回。
旧コードの読み方 — 地図が無い状態から、動いている・死んでいる・欠陥・休眠を分ける
置換の最初の仕事は、SVN / Git は分かるがパスが分からない状態で地図を出すこと。複数世代の PHP・古い C#・RDLX・MAUI を機能 ID の台帳にし、動いている・死んでいる・欠陥・休眠(別系統で再利用する)を分ける。未知の式は変換を止める。シリーズ「レガシー置換」第 2 回。
寄せる境界・寄せない境界 — DTO、PDF と SBPL、店舗と別拠点
置換で単純化するのはエンジンの数ではない。帳票データはテナント付き DTO、A4 は PDF、ラベルは SBPL、店舗は CTS-EC、別拠点は CTS-LOGI。誤配線を禁止できる境界が目的。シリーズ「レガシー置換」第 3 回。
受入の機械化 — 旧実装の振る舞いを、先にユニットと接続テストへ落とす
置換の TDD は新しい仕様から書かない。旧実装が通す入力と拒否を、単体テストと Moq / フェイクの接続テストへ先に落とす。実プリンタ無しで誤送を落とせる。実紙・実機は閉じない。シリーズ「レガシー置換」第 4 回。
Linux から Mac / Windows へ出して TDD する — アイコン・ビルド・キャプチャまで AI に渡す
実装の正本は Ubuntu 26.04。Linux では閉じない iOS シミュレーター、WPF / WebView2、Windows フォントだけ、SSH で Mac と Windows 11 へ出して回す。秘密鍵は Linux に残す。アイコン再作成・ビルド・画面キャプチャまで AI が取る。実機と実紙は人。シリーズ「レガシー置換」第 5 回。