21
Reactive Extensions はじめました 2015/04/16 歌舞伎座.tech #7 大田 一希

Reactive Extensionsはじめました

  • Upload
    -

  • View
    2.524

  • Download
    4

Embed Size (px)

Citation preview

Page 1: Reactive Extensionsはじめました

Reactive Extensionsはじめました

2015/04/16 歌舞伎座.tech #7大田 一希

Page 2: Reactive Extensionsはじめました

自己紹介

名前– 大田 一希

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はじめました

お約束事項

記載の内容は個人の見解であり、所属する企業を代表するものではありません。

Page 4: Reactive Extensionsはじめました

今日のゴール

IObservable<T>のイメージを掴んでもらう

Page 5: Reactive Extensionsはじめました

IObservable<T>とは

Page 6: Reactive Extensionsはじめました

オブザーバーパターン

監視対象Observable

監視者Observer

監視

値の発行

Page 7: Reactive Extensionsはじめました

つまりIObservable<T>は

監視される人– 状態が変化したら値を発行する

– 値が発行されたら監視者は、値を受け取って処理をする

Page 8: Reactive Extensionsはじめました

時間の経過とともに値を発行するもの

何かがあったら値を発行する– こんな形の図で表されるもの

Push型のコレクション

時間軸→

Page 9: Reactive Extensionsはじめました

つまりIObservable<T>は

Push型のコレクション

Page 10: Reactive Extensionsはじめました

Push型のコレクションの例

イベント– クリック、クリック、クリック(時系列でイベントが起きる)

時間軸→

Page 11: Reactive Extensionsはじめました

Push型のコレクションの例

非同期処理– 単一要素のPush型コレクション

時間軸→処理の呼び出し

Page 12: Reactive Extensionsはじめました

Push型のコレクションの例

普通のコレクションも見方によっては…– 0秒で一気に値が発行される

時間軸→

Page 13: Reactive Extensionsはじめました

コレクションといえば

Page 14: Reactive Extensionsはじめました

コレクションといえば

LINQが出来る– フィルタリング(Where)

– 射影(Select)

– マージ(Merge)

– 一定数無視する(Skip)

– 一定数だけ処理する(Take)

– etc…

Page 15: Reactive Extensionsはじめました

IObservable<T> + LINQ

フィルタ

Page 16: Reactive Extensionsはじめました

IObservable<T> + LINQ

射影(変換)

Page 17: Reactive Extensionsはじめました

IObservable<T> + LINQ

合成

Page 18: Reactive Extensionsはじめました

ありがちな例

マウスイベントの組合せ– マウスダウン

– マウスアップ

– マウスムーブ

Page 19: Reactive Extensionsはじめました

まとめ

Page 20: Reactive Extensionsはじめました

IObservable<T>とは

オブザーバーパターン

時系列に値を発行するもの

Push型のコレクション

Page 21: Reactive Extensionsはじめました

Reactive Extensionsとは

IObservable<T> + LINQ– 加工

– フィルタ

– グルーピング

– 合成

– etc…