ai-driven-development legacy-migration workflow
画面移行の優先順位は「列」ではなく「操作」 — 危ない順に手を入れる
「列が足りません」より「削除ボタンが違うテーブルを消しています」のほうが事故です。見た目を揃える前に、破壊的操作の同等性を先に確認するルールにしました。
W
渡邊 賢 なぜ書いたか
UIレビューだと、つい「列が足りない」「ラベルが違う」のような 見た目の差分 に目が行きます。でも本当に怖いのは、見た目が完璧なのに 削除ボタンが違うテーブルを消している とか、決定ボタンが古いステータスで保存している ような、業務破壊系の差分です。今回は優先順位を変えた話です。
やったこと
レビュー観点を「列より操作を先に見る」順に並べ替えました。
- 破壊的操作(Destructive Actions): 削除、決定、確定、取消。元実装と同じテーブル・条件・権限で動くか
- 業務状態を変える操作: ステータス変更、コピー、クローン
- 読み取り操作と表示: 検索結果、一覧表示
- 見た目(列、ラベル、文言): 最後にチェック
順序が大事です。1〜2で差分があれば、3〜4のレビューに進む前に直します。
なぜ列から見たくなるか
UIレビューを「列・ラベルの差分」から始めたくなるのには理由があって、それは 目に見えるから です。並べて比較できる。一方で操作の差分は、ボタンを押した結果としてSQLやAPIが走って初めて見えます。レビューしにくい。
そのレビューしにくさを補うために、コードを読む観点を先に置く ようにしました。具体的には:
- 元実装の
*_Clickハンドラの一覧を抽出 - それぞれの呼び出し先(モジュール、SQL、関数)まで辿る
- 移行先の同名メソッドが、同じテーブル・同じ条件で動いているか比較する
わかったこと
- AIに画面を作らせると、見た目の再現は得意、操作の再現は苦手。優先順位を変えないと、見た目が完璧で業務が崩れる完成品ができます
- 「破壊的操作の同等性」をReviewerの固定観点に入れると、UIレビューだけで止まる事故が減ります
- 列の差分は 後で足せる。操作の差分は 本番でデータが壊れるまで気づけない
業務同等性の話(裏では違うテーブルを消していた話) と合わせて読んでもらえると、なぜ操作優先かが伝わるかもしれません。
次にやること / 未解決の問題
- 「破壊的操作の一覧」を画面ごとに自動抽出できないかは継続課題。今は手で書いている
- 「操作シナリオ」のテストを単体テストレベルで持ちたいが、UIを絡めるとコスト高でまだ着手できていない
person
渡邊 賢
等差級数的Commit 運営 / ICD VIETNAM.LLC General Manager
AI駆動開発と段階的なレガシーモダン化をテーマに、日々の試行錯誤をこのブログに記録しています。
プロフィール詳細 arrow_forward似たような課題に困っている方、一緒に考えませんか。
AI駆動開発・Vibe Coding・レガシーマイグレーションに関するご相談を受け付けています。