プログラミング
Show HN: Frond – アプリケーションの依存グラフのためのフロントエンドランタイム
Show HN: Frond – a frontend runtime for your app's dependency graph (frondruntime.dev)
要約
Frondは、アプリケーションの依存グラフを管理するためのフロントエンドランタイムです。既存のステート管理ツールが「値はどこにあるのか?」に答えるのに対し、Frondは「ステートはいつ存在を許されるのか?」という問いに答えます。これにより、ステートのライフサイクル、依存関係、キャンセレーション、リソース管理などを統合的に扱うことができます。
全文翻訳
ステートツールは「値はどこにあるのか?」に答えます。
Redux / Zustand:値、ミューテーション、セレクター
React Query:サーバーキャッシュ、無効化、リトライ
MobX:可観測なドメインステート
Context:Reactを介した値の配線
まだモデルの外にあるもの:ライフサイクルを誰が所有しているのか?この値がロードされる前に何が準備できていなければならないのか?このステートはどのキー付きIDに紐付けられているのか?依存関係が変更されたときにインフライト中の作業をキャンセルするのは誰か?退去後に古いコミットを拒否するのは誰か?リリース、テレメトリー、リセットはどこにあるのか?
Frondは「ステートはいつ存在を許されるのか?」に答えます。
ID、可観測なステート、依存関係、準備状態、アクション、スコープ、リリース、退去
いたるところにあるキャンセレーションシグナル
すべてのアクワイアとリフレッシュは、そのスコープに配線されたシグナルを受け取ります。ノードが退去すると、インフライト中の作業は中断されます — フェッチは中止され、タイマーはクリアされ、ストリームは閉じられます。
スコープ付きリソース
クリーンアップは逆順で実行されます
ソケット、サブスクリプション、インターバル — それらを`disposers.add(...)`で登録します。リリースは、ランタイムパス上でそれらを逆順に実行します。
合成可能な失敗
スロー、伝播、構造化
ドライバーがスローします。ランタイムがそれをキャッチし、分類し、原因チェーンをアタッチし、すべての依存関係に通知します。ランタイムは、上記と同じ原因チェーンレポートを使用します。
おそらく違う
あなたのアプリはほとんど独立した画面をレンダリングします。データのロードはページにローカルです。ログアウトは1つのトークンと1つのキャッシュをクリアします。React Queryはほとんどの非同期ステートを説明します。あなたは長期間存続するフロントエンドサービスを持っていません。
おそらくそう
スタートアップには実際の準備ゲートがあります。サービスは他のサービスに依存しています。ユーザーIDはアプリの半分を無効にします。ソケット、SDK、アナリティクス、トランスポートにはクリーンアップが必要です。画面は多くのリソースを集約します。何かが準備できていない理由を知る必要があります。