狠狠撸
Submit Search
Reactive extensions
?
Download as PPTX, PDF
?
2 likes
?
2,309 views
Y
yone64
Follow
Room Metro #26 の発表資料です。
Read less
Read more
1 of 13
Download now
Download to read offline
More Related Content
Reactive extensions
1.
@yone64
2.
? たとえばInfoQ http://www.infoq.com/jp/news/2013/09/reactive-programming-emerging
3.
? 時間や外部の入力とともに変化する値や計算を、ユーザ自身 がプログラムするのではなく、システム(言語自体やライブラリ) がユーザからは見えないところで反応(reactive)してくれると いうもの ? よく例に挙げられるのはExcel B2の値が変わると、C2の値も 自動的に変わる
4.
? Reactive Programmingの概念を実現する2つの方 法 ?
値が必要になった時に、毎回計算を行う(Pull型) ? 描画Frameごとに実行されるMain Loopがあるプログラム形式 向け。 ? ソースが変更されたときに、再計算を行う(Push型) ?Event Drivenなプログラム形式向け。 ↑ Reactive Extensionsはこちら
5.
? Reactive Programmingを関数型の手法で実現す る。 ?
時間に変化する値(behavior)や、時間離散的なイベ ント(Event)を入力とする 3 x => x * 2 6 x => x * 2 3 4 1 6 8 2
6.
? 時間軸に乗ってプログラムの外部からくる値や通知な ら何でも ? 画面入力 ?
タイマー通知 ? キーボード?マウス操作 ? 外部センサーの値 ? サーバ通信結果 ? etc...
7.
? Target Framework ?
.NET Framework 4.0 and 4.5 ? .NET for Windows Store apps ? Silverlight 5 ? Windows Phone 7.1 ? 残念ながら標準ライブラリには含まれていません ? NuGetでインストールしましょう
8.
? Observerパターン(GoF) ? IObservable<T>
(変更を通知する側) ? IDisposable Subscribe(IObserver<T> observer); ? IObserver<T> (通知を受け取る側) ? void OnCompleted(); ? void OnError(Exception error); ? void OnNext(T value);
9.
? LINQとは ? 値の集合(IEnumerable<T>)に対する集合操作 ?
Rx = IObservable<T> + LINQ ? 時間的に離散している値の集合と、それに対する、集合操作 Select Where Select Where IE<T> IO<T> MoveNext/Current OnNext
10.
DEMO
11.
? Demo1(サジェスト) ? 連続する入力は無視する。 ?
Web問い合わせは非同期で行う ? UIスレッドを止めない ? Demo2(Drag) ? MouseDownの後に、MouseMoveのイベントを購読 ? MouseUpで購読終了 ? MouseDown座標と、MouseMove座標の組み合わせがほ しい
12.
? ReactiveProperty ? xaml系UIとのDataBindingと、IObservable<T>との変換 を、いい感じにしてくれるライブラリ。
13.
? RxJava ? https://github.com/Netflix/RxJava ?
RxJS ? https://github.com/Reactive-Extensions/RxJS などなど
Download