アクティビティフィード:ユーザーおよび状態モデル
アクティビティフィードの参加者、アクション、状態、通知、権限、および競合動作を定義します。このリファレンスは採用境界、失敗動作、観察可能な証拠を固定しつつ、環境固有の制限は設定可能なままにします。
パッケージの状態: リファレンスコンテキストは人間によるレビュー準備完了。契約およびテストシナリオは完成していますが、採用実装がこれらを通過したという主張はありません。
決定事項
アクティビティフィードには、明示的なバージョンと参加者IDを持つ耐久的な操作ログを採用します。可視状態、可能な限りの可逆的選択、入力の保持、アクセス可能な回復を備えた決定論的なユーザージャーニーを定義します。このパッケージはリファレンス契約であり、採用チームは自環境の証拠に基づき数値制限、プロバイダー、管轄、運用責任者を選択する必要があります。
範囲
- このUXブロックで記述されるアクティビティフィードのアクター、入力、出力、状態、ポリシーまたはスキーマバージョン、および外部に見える結果。
- 主要および代替インターフェース、バックグラウンド作業、キャッシュ、統合、サポート経路、および同じ境界を行使できる証拠。
- リファレンスを安全に適用するために必要な採用固有の設定、展開、回復、および検証責任。
このブロックの外側
- すべての採用者に対して普遍的なベンダー、フレームワーク、管轄、数値閾値、保持期間、またはサービスレベル目標を選択すること。
- パッケージ化されたシナリオが下流の実装で実行されたことや、このリファレンスが法的、セキュリティ、アクセシビリティ認証を付与することを主張すること。
契約
- すべての耐久的な変更に操作識別子、アクター、ベースバージョン、サーバーバージョン、および認可コンテキストを割り当てる。
- データタイプごとに1つの競合戦略を選択し、マージ、拒否、手動解決の結果を参加者に可視化する。
- プレゼンスおよびタイピングインジケーターは一時的なヒントとして扱い、所有権、承認、耐久的編集の証拠としては決して使用しない。
- 現在の投影が圧縮または再構築されても、重要な変更の追記専用履歴を保持する。
- 実際に作業が保留中の間のみ進行状況を表示し、ユーザーの確定した意図を隠すことなく重複起動を防止する。
- 検証、権限、接続、競合、致命的失敗を区別するプレーンでアクション固有のメッセージを使用する。
- フィードはコピーされた表示テキストではなく、不変のアクティビティID、アクター、ターゲット、動詞、オーディエンス、発生時間、ソースバージョンの認可された投影として構築する。
- 安定した順序付け、カーソルページネーション、重複排除、グルーピング、編集、トゥームストーン、バックフィル動作を定義し、読み込み前に現在の可視性を再確認する。
実装ガイダンス
- 最長、空、遅延、オフライン、拒否、支援技術経路をプロトタイプし、ハッピーパスのレイアウトを確定する前に検証する。
- フレームワークやベンダーの詳細を選択する前に、アクティビティフィードの入力、出力、アクター、状態、不変条件、副作用、証拠をモデル化する。
- 適用されるアクティビティフィード契約またはポリシーバージョンを重要な状態とともに保存し、マイグレーション、リプレイ、サポートの判断が追跡可能にする。
- 制御された展開の背後に経路を導入し、期待される結果と観察された結果を比較し、採用証拠が完了するまでテスト済みの回復ルートを維持する。
失敗処理と安全策
- 切断または古いクライアントは回復可能なローカル意図を保持し、さらなる書き込み前に耐久バージョンから再同期する。
- 無効または矛盾するアクティビティフィード状態は拒否または隔離される。実装は権限を拡大したり効果を重複させる値を推測しない。
- リトライは制限され耐久的なIDを使用する。枯渇後は検査可能な終端状態に達し、責任者が明確である。
検証と運用
- キーボード、タッチ、スクリーンリーダー、狭いビューポート、遅延ネットワーク、回復可能なサーバーエラーでジャーニーを完了する。
- アクティビティフィードの成功、拒否、検証失敗、依存失敗、リトライ枯渇、回復を契約バージョンごとに監視し、機密ペイロードの詳細は含めない。
- ポリシー、スキーマ、依存関係、マイグレーション、境界の変更後に正負のペアフィクスチャを再実行し、得られた証拠を保持する。
採用の前提
- 例の名前と値は具体的なフィクスチャであり普遍的なデフォルトではない。採用者は文書化された証拠と所有権を通じて置き換える。
- 採用システムは認証済みID、耐久的な操作またはレコードバージョン、制限されたテレメトリ、および変更のための制御された経路を提供できる。
このパッケージの実行可能に見える例はフィクスチャおよび受け入れ契約です。
構造とメタデータを検証するためにコレクションバリデーターを実行し、ターゲットリポジトリでシナリオを翻訳・実行して実装証拠を記録してください。