リアクティブプログラミングについてのまとめ
まずリアクティブプログラミングとは?
リアクティブプログラミング(今後RXと略)は非同期データストリームを用いたプログラミング手法である
クリックイベント、ホバーイベントは非同期イベントストリームであるが、データストリームはこれら以外から、なにからでも作れる。例えばデータ構造、ユーザー入力、変数などもストリームである。
ストリームをlistenして、それに応じて反応を返す事ができる。
ストリームとは、時間順に並んだ進行中のイベントの列だ。ストリームは、(何かの型の) 値、エラー、完了 という3つのシグナルを発行できる。"完了" が発行される場合を考えると、例えばボタンを含んだウィンドウやビューが閉じられる場合が考えられる。
値が出力された際に実行される関数、エラーが出力された際に実行される関数、「完了」が出力された際に実行される関数を定義することによって、非同期にキャプチャする。
これらのStreamを監視している関数群をObserverと呼ぶことにしている。Streamはobserve(監視される)subjectである。(observableと呼ばていることもある)
なぜRXを導入するのか?
RXはコードの抽象レベルを引き上げるものになるだろう。 RXを導入することで、イベントの相互関係に集中することができるし、コードはコールバック地獄から抜け出し、より簡潔なものになるだろう。
webアプリやモバイルアプリはリアルタイムイベントを扱うことが増えてきているのでRXを導入して行く必要があると思う