コンテンツにスキップ

複製後に登録フローを経由する

典型パターン:詳細→複製確認→新規登録→確認→完了 別タブで開く ↗

典型の画面遷移

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 完了画面
  • 目的に対して遠回りさせられる - 「過去の見積をコピーしたい」だけなのに、5画面も経由しないといけない
  • 操作が終わるまで拘束される - 複製を開始したら、完了するまで他の作業に移れない
  • 何がコピーされたか分からない - 複製後に新規登録画面に飛ぶため、元データとの差分が確認できない
  • 確認画面は読まれない - 複製元と同じ内容なのに確認を求められ、形骸化する
  • セッションに一時保存が必要 - 複製データをセッションに保持し、登録完了まで管理する必要がある
  • ルートが8つに分散 - 複製→新規登録→確認→完了と、処理が複数のルートに散らばる
  • 状態遷移が複雑 - 「複製済み・未保存」という中間状態が発生し、テストケースが増える
  • セッション切れで入力が消える - 複製後に放置すると、セッションが切れて最初からやり直しになる

適用する原則: 登録はその場で行う確認画面は最低限にする

再設計パターン:一覧から複製→一覧に戻る 別タブで開く ↗

再設計の画面遷移

GET /quotes 見積一覧
POST /quotes/:id/duplicate 複製実行 → 即座にDB保存 → 一覧にリダイレクト
GET /quotes/:id 見積詳細(編集時)
PUT /quotes/:id 更新
  • 一覧から複製: 詳細画面を経由せず、一覧から直接複製
  • 複製 = 即座に保存: 複製ボタンで新しいレコードをDBに作成
  • 下書き状態で作成: 複製直後は「下書き」ステータス
  • 一覧に戻る: 複製後は一覧画面に戻り、増えたことを確認できる
  • 新しい行をハイライト: 複製された行が視覚的に分かる

画面遷移の比較

観点典型再設計
画面数5画面2画面
ルート数84
複製の確認ダイアログありなし(削除可能だから)
複製後の画面新規登録画面一覧(増えたことを確認)
複製後の状態セッションに一時保存DBに下書き保存
編集方法新規登録画面詳細画面
テストケース多い(8ルート × 状態 × セッション管理)少ない(4ルート × 状態)
起きやすい不具合セッション切れ、中間状態の不整合構造的に発生しない

再設計には2つの変更がある。一度にやる必要はない。

変更内容効果
1複製を即座にDB保存するセッション不要、中間状態が消える
2確認画面・完了画面を削除画面遷移が減る

変更1だけでも効果がある。変更2は後からでもできる。

  • 複製ボタン押下で、新しいレコードをDBに直接作成する
  • 複製後は一覧画面にリダイレクトする
  • 新規登録フローを経由しない
  • セッション管理が不要になる
  • 「複製済み・未保存」という中間状態がなくなる
  • 複製後すぐに他の作業に移れる
懸念対応
間違えて複製した「下書き」状態で作成し、削除可能にする
データが増えすぎる下書きの自動削除(例: 7日後)を検討する
複製確認が欲しい必要ならモーダルで確認する(画面遷移はしない)

変更2: 確認画面・完了画面を削除する

Section titled “変更2: 確認画面・完了画面を削除する”
  • 複製後の確認画面を削除する
  • 完了画面を削除し、一覧に戻る
  • 必要に応じてトースト通知で完了を伝える
  • 画面遷移がさらに減る(5画面 → 2画面)
  • ルート数が減る(8 → 4)
  • テストケースが減る
  1. 下書きステータスを追加: 既存データに影響を与えずに導入できる
  2. 一部の機能で試す: 使用頻度の低い複製機能から着手する
  3. フィードバックを収集: 「一覧に戻る」が自然か確認する

複製は「取り消し可能」な操作なので、導入リスクは低い。

  1. 現行の複製フローを確認: 複製後に何をしているか観察する
  2. 「すぐ使いたい」ニーズを探る: 複製後すぐに編集したいケースが多いか確認
  3. 選択肢を示す: 従来型と再設計型の比較表を見せる

「複製したらすぐ使える」というメリットは理解されやすい。


一覧から複製 → 一覧に戻る

  • 「詳細を見てから複製」は不要。複製後に詳細を開けばよい
  • 一覧に戻ることで、増えたことが視覚的に分かる
  • 複製元と新しい見積が並んで表示される

確認ダイアログも不要

  • 複製は「取り消し可能」な操作
  • 元データは変更されない、複製後は「下書き」状態
  • 間違えたら削除すればよい

事前の確認より、事後の削除を容易にする。