SlideShare a Scribd company logo
プレゼン
AT
Combgig
自己紹介
@designpatterngf
右下に表示しておくよ
@designpatterngf
今日のテーマは
@designpatterngf
Reactive
Extensions
@designpatterngf
略して
Rx
@designpatterngf
いろんな言語に対応
@designpatterngf
流行ってるらしい
@designpatterngf
Qiitaで
調べてみよう!
@designpatterngf
「プロバイダを購読することで監
視することにより、プロバイダか
ら状態の通知を受け取ることによっ
て構成されるオブザーバパターン」
いまさら聞けないReactive Extensions
@designpatterngf
「Rxは時間軸をシーケンスと見
なして関数を適用していく関数指
向なライブラリである」
こわくないReactive Extensions超入門
@designpatterngf
わかる訳がない
@designpatterngf
そこで!
@designpatterngf
まあ多少分かりやすく説明
します(弱気)
@designpatterngf
@designpatterngf
ここでは
RxRuby
で説明します
@designpatterngf
まずは配列の操作
@designpatterngf
素のRuby
@designpatterngf
Rx
@designpatterngf
@designpatterngf
どうやら…
[1,2,3]
↓
Observable([1,2,3])
.each
↓
.subscribe
@designpatterngf
次は配列の加工
@designpatterngf
@designpatterngf
@designpatterngf
@designpatterngf
Demo A
@designpatterngf
マーブル
ダイアグラム
@designpatterngf
@designpatterngf
select
@designpatterngf
Rxには配列操作用の
メソッドがある
どうやら…
らしい…
@designpatterngf
Rxはただの配列操作
ライブラリ?
No.
@designpatterngf
[ ]
finity
infinity
@designpatterngf
川
Stream
@designpatterngf
@designpatterngf
一秒ごとに流れてくる、川
@designpatterngf
@designpatterngf
@designpatterngf
@designpatterngf
Demo b
@designpatterngf
川 の作り方
@designpatterngf
Rxには配列とストリーム
を操作する機能がある
どうやら…
らしい…
@designpatterngf
流しそうめん
@designpatterngf
流しそうめんの、 川
@designpatterngf
Demo c
@designpatterngf
まずいそうめん が
混じってる…
@designpatterngf
@designpatterngf
Demo d
@designpatterngf
Rxは配列とストリームを操作
でき、それらには同じ操作が
適用できる
どうやら…
らしい…
@designpatterngf
よくよく考えると、
ストリーム
配列
@designpatterngf
Rxはストリーム
操作ができる
どうやら…
らしい…
@designpatterngf
🍣
@designpatterngf
@designpatterngf
寿司も、流しそうめんも
食べたい!!
@designpatterngf
二つの 川 を繋げる!
@designpatterngf
@designpatterngf
DEMO e
@designpatterngf
@designpatterngf
他にもたくさん!
@designpatterngf
Streamを分割
@designpatterngf
Streamをバッファ
@designpatterngf
最初の2個だけ
@designpatterngf
Rxはストリームに対して
フィルタをかけたり
ストリーム同士を繋げたり
多彩な操作ができる
どうやら…
らしい!
@designpatterngf
実際には、どんな所で
使われてる?
@designpatterngf
TwitterのStream
@designpatterngf
ダブルクリック判定
@designpatterngf
これに対して、
ダブルクリック判定
@designpatterngf
クリックされたら、タイマーを開始
時間内にクリックが来たならダブルクリック
そうでないなら、タイマーをリセット
ダブルクリックの要件
@designpatterngf
なかなか複雑そう?
@designpatterngf
Rxなら簡単に!
@designpatterngf
@designpatterngf
buffer(0.3秒)
@designpatterngf
DEMO f
@designpatterngf
Rxの素晴らしさは分かって
いただけたと思います
@designpatterngf
オブジェクト指向
関数型指向
と並ぶ
一つのパラダイム
@designpatterngf
特にアプリ開発、Web開発
では常識と成りつつある
@designpatterngf
ぜひ使っていきましょう!
@designpatterngf
ご清聴ありがとう
ございました

More Related Content

Similar to Reactive Extensionの紹介

Rxjavaとoptionalで関数型androidしよう
Rxjavaとoptionalで関数型androidしようRxjavaとoptionalで関数型androidしよう
Rxjavaとoptionalで関数型androidしよう
Fumihiko Shiroyama
 
オブジェクト指向な人がRx swiftを試してみた
オブジェクト指向な人がRx swiftを試してみたオブジェクト指向な人がRx swiftを試してみた
オブジェクト指向な人がRx swiftを試してみた
小林 弘明
 
The History of Reactive Extensions
The History of Reactive ExtensionsThe History of Reactive Extensions
The History of Reactive Extensions
Yoshifumi Kawai
 
RakSulのInternal API開発で gRPCを導入した話
RakSulのInternal API開発で gRPCを導入した話RakSulのInternal API開発で gRPCを導入した話
RakSulのInternal API開発で gRPCを導入した話
nixiesan
 
Redux, Relay, HorizonあるいはElm
Redux, Relay, HorizonあるいはElmRedux, Relay, HorizonあるいはElm
Redux, Relay, HorizonあるいはElm
chuck h
 
rChartsによるインタラクティブな可視化表現
rChartsによるインタラクティブな可視化表現rChartsによるインタラクティブな可視化表現
rChartsによるインタラクティブな可視化表現
Yasuyuki Sugai
 
Observable Everywhere - Rxの原則とUniRxにみるデータソースの見つけ方
Observable Everywhere  - Rxの原則とUniRxにみるデータソースの見つけ方Observable Everywhere  - Rxの原則とUniRxにみるデータソースの見つけ方
Observable Everywhere - Rxの原則とUniRxにみるデータソースの見つけ方Yoshifumi Kawai
 
新・ReVIEWパーサについて
新・ReVIEWパーサについて新・ReVIEWパーサについて
新・ReVIEWパーサについて
masayoshi takahashi
 
GraphQLについての5分間
GraphQLについての5分間GraphQLについての5分間
GraphQLについての5分間
Matsuo Obu
 
Trac 0.12 と今後の動向および Trac への貢献 - tanabata.trac 2010-07-07
Trac 0.12 と今後の動向および Trac への貢献 - tanabata.trac 2010-07-07Trac 0.12 と今後の動向および Trac への貢献 - tanabata.trac 2010-07-07
Trac 0.12 と今後の動向および Trac への貢献 - tanabata.trac 2010-07-07Jun Omae
 
Clojureシンタックスハイライター開発から考えるこれからのlispに必要なもの
Clojureシンタックスハイライター開発から考えるこれからのlispに必要なものClojureシンタックスハイライター開発から考えるこれからのlispに必要なもの
Clojureシンタックスハイライター開発から考えるこれからのlispに必要なもの
sohta
 
クライアントサイドjavascript簡単紹介
クライアントサイドjavascript簡単紹介クライアントサイドjavascript簡単紹介
クライアントサイドjavascript簡単紹介
しくみ製作所
 
可視化周辺の進化がヤヴァイ~rChartsを中心として~
可視化周辺の進化がヤヴァイ~rChartsを中心として~可視化周辺の進化がヤヴァイ~rChartsを中心として~
可視化周辺の進化がヤヴァイ~rChartsを中心として~
Nagi Teramo
 
Clojure の各種React系ラッパーライブラリのサーバーサイドレンダリングの現状について
Clojure の各種React系ラッパーライブラリのサーバーサイドレンダリングの現状についてClojure の各種React系ラッパーライブラリのサーバーサイドレンダリングの現状について
Clojure の各種React系ラッパーライブラリのサーバーサイドレンダリングの現状について
Kazuhiro Hara
 
普段Djangoを使っている人間がruby on railsを勉強してみた話
普段Djangoを使っている人間がruby on railsを勉強してみた話普段Djangoを使っている人間がruby on railsを勉強してみた話
普段Djangoを使っている人間がruby on railsを勉強してみた話
ko ty
 
PHPerのためのpostgresqlチューニングmini
PHPerのためのpostgresqlチューニングminiPHPerのためのpostgresqlチューニングmini
PHPerのためのpostgresqlチューニングmini
Takhisa Hirokawa
 
React系(別言語含む)の サーバーサイドレンダリング について考えよう
React系(別言語含む)の サーバーサイドレンダリング について考えようReact系(別言語含む)の サーバーサイドレンダリング について考えよう
React系(別言語含む)の サーバーサイドレンダリング について考えよう
Kazuhiro Hara
 
laravel websocket(use redis pubsub) [Laravel meetup tokyo]
laravel websocket(use redis pubsub) [Laravel meetup tokyo]laravel websocket(use redis pubsub) [Laravel meetup tokyo]
laravel websocket(use redis pubsub) [Laravel meetup tokyo]
Yuuki Takezawa
 
Rx Showcase
Rx ShowcaseRx Showcase
Rx Showcase
Takaaki Suzuki
 
Reactive Systems と Back Pressure
Reactive Systems と Back PressureReactive Systems と Back Pressure
Reactive Systems と Back Pressure
Akihiro Ikezoe
 

Similar to Reactive Extensionの紹介 (20)

Rxjavaとoptionalで関数型androidしよう
Rxjavaとoptionalで関数型androidしようRxjavaとoptionalで関数型androidしよう
Rxjavaとoptionalで関数型androidしよう
 
オブジェクト指向な人がRx swiftを試してみた
オブジェクト指向な人がRx swiftを試してみたオブジェクト指向な人がRx swiftを試してみた
オブジェクト指向な人がRx swiftを試してみた
 
The History of Reactive Extensions
The History of Reactive ExtensionsThe History of Reactive Extensions
The History of Reactive Extensions
 
RakSulのInternal API開発で gRPCを導入した話
RakSulのInternal API開発で gRPCを導入した話RakSulのInternal API開発で gRPCを導入した話
RakSulのInternal API開発で gRPCを導入した話
 
Redux, Relay, HorizonあるいはElm
Redux, Relay, HorizonあるいはElmRedux, Relay, HorizonあるいはElm
Redux, Relay, HorizonあるいはElm
 
rChartsによるインタラクティブな可視化表現
rChartsによるインタラクティブな可視化表現rChartsによるインタラクティブな可視化表現
rChartsによるインタラクティブな可視化表現
 
Observable Everywhere - Rxの原則とUniRxにみるデータソースの見つけ方
Observable Everywhere  - Rxの原則とUniRxにみるデータソースの見つけ方Observable Everywhere  - Rxの原則とUniRxにみるデータソースの見つけ方
Observable Everywhere - Rxの原則とUniRxにみるデータソースの見つけ方
 
新・ReVIEWパーサについて
新・ReVIEWパーサについて新・ReVIEWパーサについて
新・ReVIEWパーサについて
 
GraphQLについての5分間
GraphQLについての5分間GraphQLについての5分間
GraphQLについての5分間
 
Trac 0.12 と今後の動向および Trac への貢献 - tanabata.trac 2010-07-07
Trac 0.12 と今後の動向および Trac への貢献 - tanabata.trac 2010-07-07Trac 0.12 と今後の動向および Trac への貢献 - tanabata.trac 2010-07-07
Trac 0.12 と今後の動向および Trac への貢献 - tanabata.trac 2010-07-07
 
Clojureシンタックスハイライター開発から考えるこれからのlispに必要なもの
Clojureシンタックスハイライター開発から考えるこれからのlispに必要なものClojureシンタックスハイライター開発から考えるこれからのlispに必要なもの
Clojureシンタックスハイライター開発から考えるこれからのlispに必要なもの
 
クライアントサイドjavascript簡単紹介
クライアントサイドjavascript簡単紹介クライアントサイドjavascript簡単紹介
クライアントサイドjavascript簡単紹介
 
可視化周辺の進化がヤヴァイ~rChartsを中心として~
可視化周辺の進化がヤヴァイ~rChartsを中心として~可視化周辺の進化がヤヴァイ~rChartsを中心として~
可視化周辺の進化がヤヴァイ~rChartsを中心として~
 
Clojure の各種React系ラッパーライブラリのサーバーサイドレンダリングの現状について
Clojure の各種React系ラッパーライブラリのサーバーサイドレンダリングの現状についてClojure の各種React系ラッパーライブラリのサーバーサイドレンダリングの現状について
Clojure の各種React系ラッパーライブラリのサーバーサイドレンダリングの現状について
 
普段Djangoを使っている人間がruby on railsを勉強してみた話
普段Djangoを使っている人間がruby on railsを勉強してみた話普段Djangoを使っている人間がruby on railsを勉強してみた話
普段Djangoを使っている人間がruby on railsを勉強してみた話
 
PHPerのためのpostgresqlチューニングmini
PHPerのためのpostgresqlチューニングminiPHPerのためのpostgresqlチューニングmini
PHPerのためのpostgresqlチューニングmini
 
React系(別言語含む)の サーバーサイドレンダリング について考えよう
React系(別言語含む)の サーバーサイドレンダリング について考えようReact系(別言語含む)の サーバーサイドレンダリング について考えよう
React系(別言語含む)の サーバーサイドレンダリング について考えよう
 
laravel websocket(use redis pubsub) [Laravel meetup tokyo]
laravel websocket(use redis pubsub) [Laravel meetup tokyo]laravel websocket(use redis pubsub) [Laravel meetup tokyo]
laravel websocket(use redis pubsub) [Laravel meetup tokyo]
 
Rx Showcase
Rx ShowcaseRx Showcase
Rx Showcase
 
Reactive Systems と Back Pressure
Reactive Systems と Back PressureReactive Systems と Back Pressure
Reactive Systems と Back Pressure
 

Reactive Extensionの紹介