🔄 モダナイゼーション
レガシーな基幹・業務システムを、資産を活かしながらクラウドと AI で使える形へ移す戦略と実践。
レガシー置換とは:旧実装を原典にし、先にテストへ落としてから移す
動機は負債返済ではない。他社製で手が出せない、リポジトリは分かるがパスが分からない、今は止まった過去実装を再利用したい。原典は動いている 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 回。
人が残る切替 — 実機・実紙・契約・並行稼働
テストが通っても切替ではない。現行紙の重ね合わせ、ミシン目、実機スキャナ、送り状契約、複数端末の排他、旧システムとの二重印刷防止は人の受入。切戻しも切替の一部。シリーズ「レガシー置換」第 6 回。