web-dev-qa-db-ja.com

Facebook Fluxのアプリケーションアーキテクチャは新しいアイデアですか?

Facebookは、彼らがFluxと呼ぶアーキテクチャを使用してプロジェクトを開発していると発表しました。

これは、単一方向のデータフローと、DispatcherStoresActionsなどの概念で構成されます(詳細は here )。

これは、ピースがどのように接着するかを示しています。

Views ---> (actions) ----> Dispatcher ---> (registered callback) ---> Stores -------+
Ʌ                                                                                   |
|                                                                                   V
+-- (Controller-Views "change" event handlers) ---- (Stores emit "change" events) --+

私の質問は:それは新しいアイデアですか?それは以前に使用されたアプリケーションアーキテクチャですか?別の言語/フレームワークから借用した「ベストプラクティス」ですか?

この質問の目的は、最近多くの注目を集めている建築物についての知識を深めることであり、MV*パターン私が知っているほとんどの開発者が一緒に仕事をしています。

7
Lucas Reis

これはCQRS(コマンドクエリの責任分離)の抽象概念だと思います http://www.codeproject.com/Articles/555855/Introduction-to-CQRS

enter image description here

4
chchrist

以前に特定のビュー->ディスパッチャー->ストアアーキテクチャを見た覚えはありませんが、リンクした記事で言及されているように、「フロー」のより一般的な概念はしばらく前からありました。

この構造により、関数型反応型プログラミング、より具体的にはデータフロープログラミングまたはフローベースプログラミングを連想させる方法で、アプリケーションを簡単に推論することができます。ウェイバインディング。

これらの用語を検索すると、大量の情報といくつかの既存の実装があります。 Elm を使用して、関数型のリアクティブプログラミングを行いました。それがあなたに強制する制限は、その中で作業することが難しい場合がありますが、それらの制限により、一貫性のない状態になったり、奇妙な更新サイクルが作成されたりすることも非常に難しくなります。

3
Karl Bielefeldt