コンテンツにスキップ

状態と操作を分離する

保存操作に状態変更を混ぜず、状態は状態として独立させる。

「下書き保存」と「確定保存」のように、保存ボタンが複数あるなら、設計を見直すきっかけかもしれません。

ユーザーのゴール達成にどう寄与するか: 「内容を直したい」と「状態を進めたい」を別々に実行できる。「柔軟に作業を進めたい」というゴールに直結する。

混在させる設計分離する設計
下書き保存ボタン / 確定保存ボタン保存ボタン1つ + ステータス切替
保存時に状態が決まる状態はいつでも変更できる
「状態を変えるために編集モードにする」状態変更は参照モードでも可能

保存操作に状態変更を混ぜると、「状態を変えるためだけに編集モードにする」という不自然な操作が発生することがあります。

保存と状態変更が混在

保存と状態変更が分離

  • 保存ボタンを押したら、現在の状態のまま保存される
  • 状態を変えたいなら、状態変更の操作を別途行う

状態変更は参照モードでも可能

Section titled “状態変更は参照モードでも可能”
  • ステータスバッジをクリックして状態を切り替える
  • 編集モードに入らなくても状態変更できる
PUT /items/:id → 内容を更新(状態は変えない)
PATCH /items/:id/status → 状態のみ変更
  • 「下書き保存」「確定保存」のように保存ボタンを複数用意する
  • 保存操作に状態変更を暗黙的に含める
  • 状態を変えるために編集モードを経由させる