読書会(RxJavaリアクティブプログラミング)第3回議事録

[ 戻る ]


=====================================================================================
Java読書会BOF 「RxJavaリアクティブプログラミング」を読む会 第3回
=====================================================================================

.. csv-table:: 開催概要

   "日時","2017年6月17日(土) 10:00 - 17:00"
   "場所","川崎市教育文化会館 第3会議室"
   "出席者(敬称略)","長谷川、伊藤、井上、青山、岩室、平山、吉本、遠藤、高橋(智)、高橋(徹)、今井(書記)"

chapter4 FlowableとObservableのオペレータ
==================================================

02 通知するデータを変換するオペレータ
--------------------------------------------------

- ここで出てくるFunction型は、io.reactivex.functions.Function<T,R> で、java.util.function.Function<T,R>ではない。

  - 同じ名前でややこしい。

  - 以前のバージョンでは、Function1, Function2のような名前だった。

  - java.util.function.Functionと同じように使うことを考えたのでは?

  - でも、reactivexのapply()はthrows Exceptionだが、java.utilのはthrows無いので、同じようには使えない。

- p.189 リスト6

  - これは機能の説明のためのコードで、同じことを行いたいのであればfilter + mapの方が自然。

- p.197 表1のtillTheEndに関して

  - なぜ、EagerではないconcatMapDelayError()にはtillTheEndが無い?

    → Eager無しでは生成されたFlowableが並列には動かないので、他のFlowableのデータ通知を待つということがないので。

- p.203 リスト1

  - 表3によると、bundaryIndicatorSupplierはSupplier型ではなくCallable型のはずで、get()でなくcall()のはず。

- p.211 keySelectorやvalueSelectorの名前は、なぜ〜Selectorにしたのだろう?

  - 生成だから〜Generatorなどの方がしっくりくる。

  - もとはデータの一部分からkeyやvalueを作る使われ方をしていて、それがそのままメソッド名になったのではないか。

- p.209 Map.Entryを返す(key, valueを一緒に返すことができる)メソッドを指定できる、toMap()があったら使いやすいのに。

- p.201 図2

  - △は、([〇,◇]などのことではなく)生成されたFlowable/Observableの通知を表している。

- p.202 「主なメソッド」は、buffer(int count)を除いて、下に書かれているメソッド程できることに自由度があがる。

- p.204 リスト3の下、間違い

  - 1000ミリ秒ごとに → 100ミリ秒ごとに

- p.212 本文1行目行頭、間違い

  - toMapメソッドは → toMultimapメソッドは

- p.213 表1 なぜ、mapオブジェクトを生成するメソッドの引数名は〜Selectorで、Collectionオブジェクトを生成するメソッドの引数名は〜Factoryなのだろう?

  → mapSupplierは引数が無いが、collectioFactoryはキー値を受け取るから。

  → key毎にValueのCollection実装型を変えることができる。

- p.215 リスト5下 間違い

  - 2. ... 1000ミリ秒ごとに → 500ミリ秒ごとに


03 通知するデータを制限するオペレータ
--------------------------------------------------

- p.223 distinctUntilChanged()の引数comparerの型は、BiPredicateではなくComparableでいいのではないか? comparer.test()の二つの引数の型が異なることはないだろう。

- p.226 l.3末尾間違い

  - Flowable/Observer → Flowable/Observable

- p.228 (p.227)リスト2下 間違い

  - 1. ... 1000ミリ秒ごとに → 300ミリ秒ごとに

- p.228 リスト3下 間違い

  - 1. ... 1000ミリ秒ごとに → 300ミリ秒ごとに

- p.231 (p.230)リスト2下 間違い

  - 1. ... 1000ミリ秒ごとに → 300ミリ秒ごとに

- p.232 表1 countの型は、longではなくてint ?

  → 他のcountはlongだが、このcountはintのようだ。理由は不明。

- p.236 図1下、間違い (1行目と2行目の二か所)

  - Flowable/Observer → Flowable/Observable

- p.237 実行結果 なぜ、ThreadPool-2が使われている?

  → Flowable.interval()とskipUntil()のタイマーで0,1を使っているからだろう。

- p.239 リスト2下 間違い

  - 1. ... 1000ミリ秒ごとに → 300ミリ秒ごとに

- p.240 skipLastは最後{count個,tim時間}をスキップするというより、{count個,time時間}遅らせて通知するという感じ。

- p.243 (p.242)リスト1下 間違い

  - 1. ... 1000ミリ秒ごとに → 300ミリ秒ごとに

- p.245 リスト1下 間違い

  - 1. ... 1000ミリ秒ごとに → 300ミリ秒ごとに

- p.246 実行結果後の本文2行が、リスト2前の本文末尾と重複している。

- p.247 l.4中程 間違い (他の箇所は「期間内」と書かれている)

  - 指定した時間内であっても → 指定した期間内であっても

- p.250 リスト3後の本文2行は、リスト3前の本文末尾と重複している。


04 Flowable/Observableを結合するオペレータ
--------------------------------------------------

- p.254 図3 見出し 間違い

  - mergeWithDelay → mergeDelayError

- p.256 表4 「結果データ」の行が左へ1カラムずれている。


.. note::
  p.260まで終了。次回はp.261から。


[ 戻る ]