複製後に登録フローを経由する
典型パターン:詳細→複製確認→新規登録→確認→完了
別タブで開く ↗
GET /quotes 見積一覧GET /quotes/:id 見積詳細POST /quotes/:id/duplicate 複製実行 → セッションに保存GET /quotes/new 新規登録画面(プリフィル)POST /quotes/new/confirm 確認画面へGET /quotes/new/confirm 確認画面POST /quotes 登録実行GET /quotes/new/complete 完了画面利用者の視点から
Section titled “利用者の視点から”- 目的に対して遠回りさせられる - 「過去の見積をコピーしたい」だけなのに、5画面も経由しないといけない
- 操作が終わるまで拘束される - 複製を開始したら、完了するまで他の作業に移れない
- 何がコピーされたか分からない - 複製後に新規登録画面に飛ぶため、元データとの差分が確認できない
- 確認画面は読まれない - 複製元と同じ内容なのに確認を求められ、形骸化する
開発・運用の視点から
Section titled “開発・運用の視点から”- セッションに一時保存が必要 - 複製データをセッションに保持し、登録完了まで管理する必要がある
- ルートが8つに分散 - 複製→新規登録→確認→完了と、処理が複数のルートに散らばる
- 状態遷移が複雑 - 「複製済み・未保存」という中間状態が発生し、テストケースが増える
- セッション切れで入力が消える - 複製後に放置すると、セッションが切れて最初からやり直しになる
適用する原則: 登録はその場で行う、確認画面は最低限にする
再設計パターン:一覧から複製→一覧に戻る
別タブで開く ↗
GET /quotes 見積一覧POST /quotes/:id/duplicate 複製実行 → 即座にDB保存 → 一覧にリダイレクトGET /quotes/:id 見積詳細(編集時)PUT /quotes/:id 更新設計のポイント
Section titled “設計のポイント”- 一覧から複製: 詳細画面を経由せず、一覧から直接複製
- 複製 = 即座に保存: 複製ボタンで新しいレコードをDBに作成
- 下書き状態で作成: 複製直後は「下書き」ステータス
- 一覧に戻る: 複製後は一覧画面に戻り、増えたことを確認できる
- 新しい行をハイライト: 複製された行が視覚的に分かる
| 観点 | 典型 | 再設計 |
|---|---|---|
| 画面数 | 5画面 | 2画面 |
| ルート数 | 8 | 4 |
| 複製の確認 | ダイアログあり | なし(削除可能だから) |
| 複製後の画面 | 新規登録画面 | 一覧(増えたことを確認) |
| 複製後の状態 | セッションに一時保存 | DBに下書き保存 |
| 編集方法 | 新規登録画面 | 詳細画面 |
| テストケース | 多い(8ルート × 状態 × セッション管理) | 少ない(4ルート × 状態) |
| 起きやすい不具合 | セッション切れ、中間状態の不整合 | 構造的に発生しない |
改修に向けて
Section titled “改修に向けて”再設計には2つの変更がある。一度にやる必要はない。
| 変更 | 内容 | 効果 |
|---|---|---|
| 1 | 複製を即座にDB保存する | セッション不要、中間状態が消える |
| 2 | 確認画面・完了画面を削除 | 画面遷移が減る |
変更1だけでも効果がある。変更2は後からでもできる。
変更1: 複製を即座にDB保存する
Section titled “変更1: 複製を即座にDB保存する”- 複製ボタン押下で、新しいレコードをDBに直接作成する
- 複製後は一覧画面にリダイレクトする
- 新規登録フローを経由しない
- セッション管理が不要になる
- 「複製済み・未保存」という中間状態がなくなる
- 複製後すぐに他の作業に移れる
懸念への対応
Section titled “懸念への対応”| 懸念 | 対応 |
|---|---|
| 間違えて複製した | 「下書き」状態で作成し、削除可能にする |
| データが増えすぎる | 下書きの自動削除(例: 7日後)を検討する |
| 複製確認が欲しい | 必要ならモーダルで確認する(画面遷移はしない) |
変更2: 確認画面・完了画面を削除する
Section titled “変更2: 確認画面・完了画面を削除する”- 複製後の確認画面を削除する
- 完了画面を削除し、一覧に戻る
- 必要に応じてトースト通知で完了を伝える
- 画面遷移がさらに減る(5画面 → 2画面)
- ルート数が減る(8 → 4)
- テストケースが減る
自社プロダクトの場合
Section titled “自社プロダクトの場合”- 下書きステータスを追加: 既存データに影響を与えずに導入できる
- 一部の機能で試す: 使用頻度の低い複製機能から着手する
- フィードバックを収集: 「一覧に戻る」が自然か確認する
複製は「取り消し可能」な操作なので、導入リスクは低い。
受託開発の場合
Section titled “受託開発の場合”- 現行の複製フローを確認: 複製後に何をしているか観察する
- 「すぐ使いたい」ニーズを探る: 複製後すぐに編集したいケースが多いか確認
- 選択肢を示す: 従来型と再設計型の比較表を見せる
「複製したらすぐ使える」というメリットは理解されやすい。
一覧から複製 → 一覧に戻る
- 「詳細を見てから複製」は不要。複製後に詳細を開けばよい
- 一覧に戻ることで、増えたことが視覚的に分かる
- 複製元と新しい見積が並んで表示される
確認ダイアログも不要
- 複製は「取り消し可能」な操作
- 元データは変更されない、複製後は「下書き」状態
- 間違えたら削除すればよい
事前の確認より、事後の削除を容易にする。