reactive extensionsはじめました
TRANSCRIPT
![Page 1: Reactive Extensionsはじめました](https://reader030.vdocuments.site/reader030/viewer/2022032616/55a77d611a28abba668b47d4/html5/thumbnails/1.jpg)
Reactive Extensionsはじめました
2015/04/16 歌舞伎座.tech #7大田 一希
![Page 2: Reactive Extensionsはじめました](https://reader030.vdocuments.site/reader030/viewer/2022032616/55a77d611a28abba668b47d4/html5/thumbnails/2.jpg)
自己紹介
名前– 大田 一希
SNS/Blog– かずきのBlog@hatena
http://okazuki.hatenablog.com/
– Twitter@okazuki
自己アピール欄– Microsoft MVP for Windows Platform Development
– Reactive Extensions 入門 v0.1http://www.slideshare.net/okazuki0130/reactive-extensionsv01
– Reactive Extensions + メソッド名でググってください
– 左耳が聞こえにくい
![Page 3: Reactive Extensionsはじめました](https://reader030.vdocuments.site/reader030/viewer/2022032616/55a77d611a28abba668b47d4/html5/thumbnails/3.jpg)
お約束事項
記載の内容は個人の見解であり、所属する企業を代表するものではありません。
![Page 4: Reactive Extensionsはじめました](https://reader030.vdocuments.site/reader030/viewer/2022032616/55a77d611a28abba668b47d4/html5/thumbnails/4.jpg)
今日のゴール
IObservable<T>のイメージを掴んでもらう
![Page 5: Reactive Extensionsはじめました](https://reader030.vdocuments.site/reader030/viewer/2022032616/55a77d611a28abba668b47d4/html5/thumbnails/5.jpg)
IObservable<T>とは
![Page 6: Reactive Extensionsはじめました](https://reader030.vdocuments.site/reader030/viewer/2022032616/55a77d611a28abba668b47d4/html5/thumbnails/6.jpg)
オブザーバーパターン
監視対象Observable
監視者Observer
監視
値の発行
![Page 7: Reactive Extensionsはじめました](https://reader030.vdocuments.site/reader030/viewer/2022032616/55a77d611a28abba668b47d4/html5/thumbnails/7.jpg)
つまりIObservable<T>は
監視される人– 状態が変化したら値を発行する
– 値が発行されたら監視者は、値を受け取って処理をする
![Page 8: Reactive Extensionsはじめました](https://reader030.vdocuments.site/reader030/viewer/2022032616/55a77d611a28abba668b47d4/html5/thumbnails/8.jpg)
時間の経過とともに値を発行するもの
何かがあったら値を発行する– こんな形の図で表されるもの
Push型のコレクション
時間軸→
![Page 9: Reactive Extensionsはじめました](https://reader030.vdocuments.site/reader030/viewer/2022032616/55a77d611a28abba668b47d4/html5/thumbnails/9.jpg)
つまりIObservable<T>は
Push型のコレクション
![Page 10: Reactive Extensionsはじめました](https://reader030.vdocuments.site/reader030/viewer/2022032616/55a77d611a28abba668b47d4/html5/thumbnails/10.jpg)
Push型のコレクションの例
イベント– クリック、クリック、クリック(時系列でイベントが起きる)
時間軸→
![Page 11: Reactive Extensionsはじめました](https://reader030.vdocuments.site/reader030/viewer/2022032616/55a77d611a28abba668b47d4/html5/thumbnails/11.jpg)
Push型のコレクションの例
非同期処理– 単一要素のPush型コレクション
時間軸→処理の呼び出し
![Page 12: Reactive Extensionsはじめました](https://reader030.vdocuments.site/reader030/viewer/2022032616/55a77d611a28abba668b47d4/html5/thumbnails/12.jpg)
Push型のコレクションの例
普通のコレクションも見方によっては…– 0秒で一気に値が発行される
時間軸→
![Page 13: Reactive Extensionsはじめました](https://reader030.vdocuments.site/reader030/viewer/2022032616/55a77d611a28abba668b47d4/html5/thumbnails/13.jpg)
コレクションといえば
![Page 14: Reactive Extensionsはじめました](https://reader030.vdocuments.site/reader030/viewer/2022032616/55a77d611a28abba668b47d4/html5/thumbnails/14.jpg)
コレクションといえば
LINQが出来る– フィルタリング(Where)
– 射影(Select)
– マージ(Merge)
– 一定数無視する(Skip)
– 一定数だけ処理する(Take)
– etc…
![Page 15: Reactive Extensionsはじめました](https://reader030.vdocuments.site/reader030/viewer/2022032616/55a77d611a28abba668b47d4/html5/thumbnails/15.jpg)
IObservable<T> + LINQ
フィルタ
![Page 16: Reactive Extensionsはじめました](https://reader030.vdocuments.site/reader030/viewer/2022032616/55a77d611a28abba668b47d4/html5/thumbnails/16.jpg)
IObservable<T> + LINQ
射影(変換)
![Page 17: Reactive Extensionsはじめました](https://reader030.vdocuments.site/reader030/viewer/2022032616/55a77d611a28abba668b47d4/html5/thumbnails/17.jpg)
IObservable<T> + LINQ
合成
![Page 18: Reactive Extensionsはじめました](https://reader030.vdocuments.site/reader030/viewer/2022032616/55a77d611a28abba668b47d4/html5/thumbnails/18.jpg)
ありがちな例
マウスイベントの組合せ– マウスダウン
– マウスアップ
– マウスムーブ
![Page 19: Reactive Extensionsはじめました](https://reader030.vdocuments.site/reader030/viewer/2022032616/55a77d611a28abba668b47d4/html5/thumbnails/19.jpg)
まとめ
![Page 20: Reactive Extensionsはじめました](https://reader030.vdocuments.site/reader030/viewer/2022032616/55a77d611a28abba668b47d4/html5/thumbnails/20.jpg)
IObservable<T>とは
オブザーバーパターン
時系列に値を発行するもの
Push型のコレクション
![Page 21: Reactive Extensionsはじめました](https://reader030.vdocuments.site/reader030/viewer/2022032616/55a77d611a28abba668b47d4/html5/thumbnails/21.jpg)
Reactive Extensionsとは
IObservable<T> + LINQ– 加工
– フィルタ
– グルーピング
– 合成
– etc…