検索条件と結果を別画面にする
GET /projects 案件一覧GET /projects/search 検索画面POST /projects/search 検索実行 → 検索結果画面へGET /projects/search/results 検索結果一覧利用者の視点から
Section titled “利用者の視点から”- 毎回条件を入力し直す - よく使う検索条件があるのに、毎回15項目の画面を見て入力する
- 結果を見るまでに時間がかかる - 検索画面→検索実行→結果画面と3ステップ必要
- 条件の微調整がしにくい - 検索結果を見て条件を変えたい場合、検索画面に戻ってやり直し
- URLが共有できない - 検索結果を同僚に見せたいが、セッションに依存していてURLを送れない
開発・運用の視点から
Section titled “開発・運用の視点から”- 検索条件のセッション管理が複雑 - 条件を保持するためにセッションを使うと、タイムアウトや複数タブ問題が発生
- ルートが多い - 検索条件画面、検索実行、検索結果と3つのルートが必要
- テストが多くなる - 検索条件の組み合わせ × 画面遷移のパターンをすべてテストする必要がある
- 「戻る」ボタンの挙動が複雑 - POSTで遷移しているため、ブラウザバックで警告が出る
適用する原則: モードレスを優先する、画面名は「何を見ているか」で名付ける
GET /projects 案件一覧(フィルタ内蔵)GET /projects?q=...&status=... フィルタ適用(URL直接)設計のポイント
Section titled “設計のポイント”- インクリメンタル検索: 入力と同時に絞り込み
- スマートフィルタ: よく使う3条件だけ表示、詳細は展開
- 保存済み検索: よく使う条件をワンクリックで適用
- URLで状態保持: 検索条件がURLに反映、共有可能
| 観点 | 典型 | 再設計 |
|---|---|---|
| 画面数 | 3画面 | 1画面 |
| 検索条件 | 15項目表示 | 3項目 + 展開 |
| 結果表示 | 画面遷移後 | リアルタイム |
| 条件変更 | 検索画面に戻る | その場で変更 |
| 条件保存 | なし | 保存済み検索 |
| テストケース | 多い(3ルート × 状態 × 遷移) | 少ない(1ルート × 状態) |
| 起きやすい不具合 | セッション切れ、戻るボタン警告 | 構造的に発生しない |
改修に向けて
Section titled “改修に向けて”再設計には2つの変更がある。一度にやる必要はない。
| 変更 | 内容 | 効果 |
|---|---|---|
| 1 | 検索条件と結果を同一画面に統合 | 画面遷移が減る、URLで共有可能 |
| 2 | 保存済み検索を追加 | 繰り返し入力が不要になる |
変更1だけでも大きな効果がある。変更2はユーザーの利用状況を見てから追加してもよい。
変更1: 検索条件と結果を統合する
Section titled “変更1: 検索条件と結果を統合する”/searchと/search/resultsルートを削除する- 一覧画面にフィルタUIを追加する
- 検索条件をクエリパラメータで管理する(
?status=active&q=...)
- 画面遷移がなくなり、操作が軽快になる
- URLに条件が含まれるため共有できる
- セッション管理が不要になる
実装パターン
Section titled “実装パターン”| パターン | 説明 |
|---|---|
| 上部フィルタ | 一覧の上部によく使う条件を配置 |
| サイドバー | 条件が多い場合はサイドに配置 |
| モーダル | 詳細条件のみモーダルで入力 |
変更2: 保存済み検索を追加する
Section titled “変更2: 保存済み検索を追加する”- ユーザーが検索条件に名前を付けて保存できるようにする
- 保存した条件をワンクリックで適用できるUIを追加する
- 毎回の条件入力が不要になる
- 同じ条件を使う他のユーザーと共有できる
自社プロダクトの場合
Section titled “自社プロダクトの場合”- 利用ログを分析する: よく使う検索条件を把握する
- 小さく試す: 一部の一覧画面でフィルタUIを試す
- フィードバックを得る: 使いやすいか、何が足りないかを聞く
表示する条件を減らしても、実際に困る人がほとんどいないケースが多い。
受託開発の場合
Section titled “受託開発の場合”- 現行の使い方を確認する: 顧客がどんな条件で検索しているか
- よく使う条件を提案する: 「これだけ表示しませんか」と具体案を出す
- 保存済み検索は後回し: 最初は統合だけ、必要なら追加
顧客が「全条件を見たい」と言う場合でも、「展開式」で対応できることが多い。
よく使う条件を見極める
Section titled “よく使う条件を見極める”すべての条件を表示する必要はない。利用ログを見て、実際に使われている条件を把握する。
よく使う条件(常に表示):- キーワード- ステータス- 担当者
たまに使う条件(展開時に表示):- 期間- 金額範囲- カテゴリ
ほぼ使わない条件(廃止を検討):- 作成者- 更新日保存済み検索の例
Section titled “保存済み検索の例”[自分の案件] → status=active & assignee=me[今月受注] → status=won & date=this_month[要対応] → status=pending & priority=high[フォロー中] → tag=follow_upユーザーが自分でよく使う条件を保存できるようにすると、検索画面自体が不要になることが多い。