リアクティブプログラミング10日目
結構間が空きました。元気になったので再開
無理はよくない、転職してぇ、そのためのRxJava
最近アプリ開発から強制立ち退きカウントダウンを食らって気分が沈んでます
自分が関わっているサービスが今後ボロボロになっていくと思うと辛い
別に僕が何かやらかしたとかそういうのが理由ではないのが本当に悔しい
Base class vs base type
性能比較でもすんの?
ざっと和訳
RxJavaの設計はReactive Streamsの仕様の影響を強く受けたため
ライブラリには各々にインターフェースが用意されている
「基本クラスが静的メソッドとインスタンスメソッドが多いので重い」
という記述があるが何の意味かわからん・・・
「considered heavy」って「重いと考えられる」だよな
重いって何?何が重いん・・・?
リファレンスに載っている表
「各々にインターフェースが用意してあるよ」ってことで記述されてるんだけど・・・
Type | Class | Interface | Consumer |
---|---|---|---|
0..N backpressured | Flowable | Publisher | Subscriber |
0..N unbounded | Observable | ObservableSource | Observer |
1 element or error | Single | SingleSource | SingleObserver |
0..1 element or error | Maybe | MaybeSource | MaybeObserver |
0 element or error | Completable | CompletableSource | CompletableObserver |
Consumer is 何
表のTypeとclassで説明されていることはこれで説明した表の詳細
この表ですね
名前 | 説明 |
---|---|
Observable | 値が複数 |
Single | 値が1つ |
Maybe | 値が1つ or なし |
Completable | 値なし |
FlowableとObservableはバックプレッシャーがあるないだけ
んで、後ろの部分は何なんだ
Reactive Streamsの仕様を見てみる
(抜粋)
SPECIFICATION
1.Publisher
public interface Publisher<T> { public void subscribe(Subscriber<? super T> s); }
あっこれかぁ
つまるとこインターフェースで呼ぶときはこうしろってことなんですかね
ちょっと良く分かんないです
というかこれ何の意味があるんですか(殴られそう)
RxJavaではなくてリアクティブプログラミングを根本から勉強しろと言われてる気がする
RxJavaトップページの翻訳はこれでおしまいです
あとは下の方に別のドキュメントとかwikiがあるのでそれを見ろという感じで・・・
総括
RxJavaの基本はコレクションをストリームで管理するという非常にシンプルなもの
多分これでいいと思います
ぶっちゃけ基本を学ぶだけでも覚えることめっちゃ多いのかと思っていたけど
いざ取り掛かってみるとそこまででもなかった
概念は結構シンプルで分かりやすい
まぁ実際に現場で使ってみたりすると沼にハマったりするんだろうけど・・・
Android開発で利用する場合はライフサイクルとかUIスレッドとか
色々と考えながら実装しないと思った通りに動いてくれないみたいな事故があるんですよね
変な実装しなければ割ときちんと動くはずなんですけど・・・
結構適当に読み解いているのでそろそろ警察に後ろから刺されそう
せっかくのGWなので
次はなんかいいサンプルコードがあれば復習がてら読み解いていくか
Clean Architectureの勉強をしていこうと思いまーす
おしまい