進め方
State Machineは、緩く関連したブール値フラグではなく、明示的な状態と遷移としてインターフェースの挙動をモデル化します。コンポーネントを動かすイベント、遷移を許可するガード、その途中で起こるアクションを特定します。ソースが挙げる例は、フォーム、データリクエスト、認証、複数ステップのウィザードです。
目的は、テスト可能な挙動仕様を作ることです。各状態にはUI上の表現が必要です。非終端状態には出口が必要で、無効な組み合わせは実装前に特定すべきです。ソースはstate-machineライブラリを指定せず、網羅的な証明を自動生成するとも主張していません。
期待される成果物
- 一つの焦点を絞った関心事に対する状態とイベントの一覧。
- ガードおよびエントリー/イグジットアクションを含む遷移マップ。
- レビュー用のエラー、復旧、不可能な状態のケース。
ブリーフからレビューまで
- 01状態とイベントを列挙する
意味のあるモードと、それを変え得るすべてのトリガーを、ハッピーパスから順に挙げます。
- 02有効な遷移を定義する
遷移先、条件、副作用を指定します。設計上防ぐべき組み合わせを特定します。
- 03復旧とUIへの対応付けを追加する
失敗、再試行、キャンセル、終了をモデル化し、各状態でインターフェースがどう見えるかを示します。