More Related Content
PDF
Reactive Systems と Back Pressure PDF
PDF
PDF
Rx swift,Repro framewolrk PPTX
Guide to GraalVM (Oracle Groundbreakers APAC 2019 Tour in Tokyo) PDF
PDF
PDF
What's hot
PDF
PDF
PDF
PDF
LabVIEW NXG Current Status @ 2020 PPTX
UniRx勉強会 reactive extensions inside(公開用) PDF
Closure CompilerのES6対応 あるいはES6時代のAltJS生存戦略 PPTX
PDF
RxSwiftのデータバインディングだけ PDF
PDF
Viewers also liked
PDF
PDF
Incremental DOM and Recent Trend of Frontend Development PDF
Deconstruction of Serverless and blockchain PDF
PDF
Silverlight2でつくるリッチなTrac用UI PPTX
【Potatotips #30】RxJavaを活用する3つのユースケース PDF
Domain Event - The Hidden Gem of DDD PDF
Gradle a new Generation Build Tool PDF
PDF
PPTX
PDF
Webアプリケーションをもっと楽しく! 〜フロントエンドのお仕事〜 PDF
企業向けクラウドサービスの開発・運用 悩みどころのパターンと対策 PPTX
PDF
リアクティブ・アーキテクチャ ~大規模サービスにおける必要性と課題〜 #devsumi PDF
PPTX
PDF
PDF
PPTX
Similar to Reactive
PPTX
PDF
Why Reactive Matters #ScalaMatsuri PDF
Observable Everywhere - Rxの原則とUniRxにみるデータソースの見つけ方 PDF
Reactive Extensionsで非同期処理を簡単に PDF
PDF
PPTX
PDF
C#次世代非同期処理概観 - Task vs Reactive Extensions PDF
PDF
RxShowcase -for ignote & i-Jupiter- PDF
History & Practices for UniRx UniRxの歴史、或いは開発(中)タイトルの用例と落とし穴の回避法 PDF
PPTX
PPTX
モダン JavaScript における非同期処理 - Promise, async/await - PDF
東京Node学園#3 Domains & Isolates PDF
なぜリアクティブは重要か #ScalaMatsuri PDF
PDF
Android meets RxJava - 渋谷Java#6 PDF
PPTX
.NET Web プログラミングにおける非同期 IO のすべて (Build Insider OFFLINE) Reactive
- 1.
- 3.
非同期処理の重要性
C10K問題
Node.jsでは、I/Oに関するAPIはすべて非同期
UX
スマホでは、しばらく応答のないアプリは強制終了
WinRT APIでは、50msec以上かかりそうな処理はすべて非同期
非同期処理を扱う機会が増えている。
非同期処理をきれいに書くためにPromiseやReactiveに注目が集まっている。
- 4.
- 5.
- 6.
- 7.
Microsoft ResearchでErikMeijer(Haskell仕様策定者の一人)が中心となって開発。
FRPを実用レベルに落とし込んだ。
C#実装
Signalのみに特化
エラーハンドリング
リソース管理
スケジューラ
テストのための機能
Hot Observable, Cold Observable
豊富な関数群
- 8.
- 9.
- 10.
- 12.
- 13.
Observer
イベントを受け取る人。監視する人。
3種類のイベントを利用
onNext: データ通知
onError: エラー通知
onCompleted: 完了通知
Observable
イベントを発行する人。監視対象。
observable.subscribe(observer);
いろんなメソッドをつなげてかける
observable
.filter(x -> x > 5)
.map(x -> x * x)
.subscribe(x -> print(x));
Subscription(Disposable)
subscribeの戻り値
監視を解除することができる。
var s = observable.subscribe(observer)
s.unsubscribe();
unsubscribeを呼ばなくても、onCompleted発生
時点で監視は解除される
Scheduler
コールバック関数を実行するスレッドを切り替え
ることができる。
GUIアプリの場合、subscribeを実行するスレッ
ドをUIスレッドに切り替えて、画面の描画をおこ
なう場合などに使える。
テスト用スケジューラを使うと、実行タイミング
を自在に制御できる。
- 14.
- 15.
fileSystem.open(fileName, result ->{
if (result.succeeded()) {
result.result().write(buf, 100, x -> {
if (x.succeeded()) {
result.result().close(v -> {
if (v.succeeded()) {
// 正常処理
} else {
// エラー処理
}
});
} else {
// エラー処理
}
});
} else {
// エラー処理
}
});
fileSystem.open(fileName)
.flatMap(file -> file.write(buf, 100)
.flatMap(v -> file.close()))
.subscribe(
x -> /* 正常処理 */,
e -> /* エラー処理 */
);
ノンブロッキングI/OのAPI
を利用してファイル操作をし
ていると、ネストが深くなり
エラー処理も分散してしまう
RxJavaで書き換えると
見通しがよくなった
- 16.
- 17.
- 18.
- 19.
- 20.
なぜリアクティブプログラミングは重要か。
やさしいFunctionalreactive programming(概要編)
【翻訳】あなたが求めていたリアクティブプログラミング入門
The History of Reactive Extensions
ReactiveX
"The Reactive Manifesto v2.0" 日本語訳
非同期ストリーム処理の標準化を目指す "Reactive Streams" とは
RxMarbles