リアクティブプログラミングとMVVMは、UIからドメインレイヤーを分離する問題に対処できる2つのアプローチです。
リアクティブフレームワークは、主流のプラットフォーム(.netおよびJavaのRx、react.js)とより実験的な場所(haskellのFRP)の両方でマインドシェアを獲得しています。
私は主にangularでMVVMを使用しており、表現力に対するシンプルさの比率は非常に満足できるものだと思っています。
リアクティブフレームワークは、mvvmが購入しない開発者を購入しますか?
本当に違いはありますか?たとえば、knockout.jsはmvvmフレームワークとしてアドバタイズされますが、そのインターフェースには反応的な感覚があります。
this.firstName = ko.observable("John");
this.lastName = ko.observable("Smith");
this.fullName = ko.computed(function() {
return this.firstName() + " " + this.lastName();
}, this);
これらは、競合しないさまざまな概念であり、簡単に連携して優れた結果を生み出すことができます。
素人の言葉で:
MVVMは、コードビハインド(GUI /モデル結合)の混乱から逃れるのに役立ちます。リアクティブアプローチは、イベント/コールバックの混乱を減らすのに役立ちます。
MicrosoftはMVVMの最初の発明者なので、XAML/WPFについて少し学ぶことをお勧めします。マイクロソフトは、Reactiveアプローチの非常に優れた実装であるReactive Extensionsも作成しました。
これらを組み合わせるためのまともな試みはここにあります:
http://www.reactiveui.nethttps://github.com/reactiveui/ReactiveUI
関連SO質問:
https://stackoverflow.com/questions/1763411/reactive-extensions-rx-mvvm