目次
本日のアジェンダ
- 自己紹介
- 座学
- rxとは?
- rxの歴史
- 簡単な概念
- rxのメリットとデメリット
- ハンズオン!
自己紹介
rxとは?
Reactive Extensions(Rx)の略称です
Rx、リアクティブプログラミングなど呼ばれることが多いです
今までのプログラムは主にTransformational programmingと呼ばれるものでした
Transformational programming参考画像
みなさんも見たことがあるかと思いますが上から下にプログラムが流れていくこと
その都度内容、状態を条件によってプログラミング書いていくことが主流でした
リアクティブプログラミングは今までの縦方向に処理が進むのとは違い
変更を伝播させるデータフロー指向のプログラミングパラダイムを指す
・・・・・・・・・・・・・・・・・・・・・・・・・・😪
なるほど、わからん😊
ということでできる限りわかりやすく簡単に説明しようと思います〜
rxの歴史
そもそもRxの考えがどこから生まれたのかというと
Microsoftが2009年に.Net Framework向けに提供したライブラリでした
しかし、その便利さから様々な言語に移植、提供され始めています
現在はReactiveXというユーザー名で各言語のライブラリが提供されています
https://github.com/ReactiveX
- Rxjs
- RxJava
- RxAndroid
- RxPY
- RxSwift
- RxGo
- rxdart
- RxCpp
- RxKotlin
- RxPHP
・・・・・・etc
詳しくはリンク先で確認してね🐦
簡単な概念
なぜここまでRxプログラミングが普及したのか?
それにはRxプログラミングの変更があったデータを伝播させる考え方が大きい理由の一つである
データの変更を伝播させるとは?
わかりやすいもので言うとみんな大好きExcelさんにRxの考えが取り入れられています!
今回はGoogleのスプレッドシートを使用してどういうことか簡単に説明します!
登場人物
Rxにはよく2人の登場人物が出てきます
- 観察する人
- 状態が変わったかを見守り続けて変わったときに何かをします
- 観察される人
- 状態の変化を持ち続けていて変化があったら観察する人に伝えます
rxのメリットとデメリット
メリット
- どの言語でもほぼほぼ同じ処理、ロジックが書けること
- 変更に強い!(そもそも状態の変化に対応するように作られている)
- Rxを仕事で使う機会が多い(むしろスマホアプリ開発使っていないところが減ってきています)
デメリット
- 強いて挙げるなら変更しないものに使おうとすれば逆にコストが高くなります・・・・
詳しい資料
詳細説明すると明日になってしまうので以下の資料とかを確認してみてください!
https://coffee-nominagara.com/2018-06-04-150921
https://qiita.com/nakailand/items/8b54dc9b4b39b0809c57
ハンズオン
休憩してハンズオンしますー
https://qiita.com/r_chiba/items/5618a3dd96618222cca8