表示調整
閉じる
挿絵表示切替ボタン
▼配色
▼行間
▼文字サイズ
▼メニューバー
×閉じる

ブックマークに追加しました

設定
0/400
設定を保存しました
エラーが発生しました
※文字以内
ブックマークを解除しました。

エラーが発生しました。

エラーの原因がわからない場合はヘルプセンターをご確認ください。

145/210

RxJSとはなんぞや?

前回、RxJSが判らないという事が判りました。


初心と言うか、今までの(無様な)コードを忘れてRxJSについて考えてみたいと思います。


まずAngular公式のRXJSの説明を見ていきます。


Angular日本語ドキュメンテーション|RxJS ライブラリ

https://angular.jp/guide/rx-library#rxjs-%E3%83%A9%E3%82%A4%E3%83%96%E3%83%A9%E3%83%AA



中心にあるのはObservable と言う考え方のようですが要約すると(非同期の部分にあえて目をつぶります)


『RxJSは、observablesを使用したリアクティブプログラミング用のライブラリ』


となるかと思います。


思うに、目的として非同期処理があったにせよ、RxJS自体は何かを観測して、その結果により"アクション"を起こすための機能の集まり(ライブラリ)と言う気がしています。


ですので、非同期の処理の解決を中心に考えるからわかりづらいのかも?


そう考えてリアクティブプログラミングと言う言葉から検索を拡げて、考え方の参考になるサイトを見つけました。(オリジナルの翻訳のようですが)


【翻訳】あなたが求めていたリアクティブプログラミング入門

https://ninjinkun.hatenablog.com/entry/introrxja


私的にものすごく乱暴にまとめてみます。


・まず色々なイベントが起きる(あるいは起きた、起きるであろう)時間軸があり、これをストリームと呼ぶ

・イベントとは、ストリーム上の各瞬間で

 ①(何らかの型の)値が出力される

 ②エラ-が起きる

 ③完了する

 のいずれかが起きた(あるいは起きる)ことを指す

・イベントが起きた時に実行される関数を準備しておけば結果的に非同期処理になるよね?

・また一つのストリームから別のストリームを作る事も出来る

 (クリックに着目したストリームから、クリック回数のストリームが出来たり)


こういう考え方を『関数型リアクティブプログラミング (FRP)』と言うそうですが、応用できる方面と言うか、これに取り組むべき理由は一見の価値があると思うので引用します。


---------------------------------------------------------------

10年前、Webページのインタラクションと言えば、長いフォームをバックエンドに送って、フロントエンドはシンプルに描画するだけだった。アプリはよりリアルタイム性を持つように進化している。一つのフォームフィールドの変更は、自動的にバックエンドでの保存を引き起こす。コンテンツを "いいね" すると、リアルタイムで接続している他のユーザーに反映される。


現代のアプリは、高度にインタラクティブな体験ユーザーに与えるために、多数のリアルタイムイベントを扱っている。我々はこれを適切に取り扱うツールを探しており、リアクティブプログラミングがその答えなのだ。

---------------------------------------------------------------



そして、原著者によれば(どうやら)『全てがストリームにできる。これがFRPのマントラだ。』だそうで、これを信じるならば大抵の事はFRPすなわちRxJSで出来る・・・のかな?


と言うか、解決すべき課題をまずストリームとして見るのが最大にして最初のアプローチなんでしょうね。


あとは実践あるのみ・・・だといいなと思いつつ投稿です。

評価をするにはログインしてください。
この作品をシェア
Twitter LINEで送る
ブックマークに追加
ブックマーク機能を使うにはログインしてください。
― 新着の感想 ―
このエピソードに感想はまだ書かれていません。
感想一覧
+注意+

特に記載なき場合、掲載されている作品はすべてフィクションであり実在の人物・団体等とは一切関係ありません。
特に記載なき場合、掲載されている作品の著作権は作者にあります(一部作品除く)。
作者以外の方による作品の引用を超える無断転載は禁止しており、行った場合、著作権法の違反となります。

この作品はリンクフリーです。ご自由にリンク(紹介)してください。
この作品はスマートフォン対応です。スマートフォンかパソコンかを自動で判別し、適切なページを表示します。

↑ページトップへ