再見(jiàn)! RxJava
點(diǎn)擊“開(kāi)發(fā)者技術(shù)前線(xiàn)”,選擇“星標(biāo)?”
在看|星標(biāo)|留言,? 真愛(ài)

回復(fù)“666”,獲取一份專(zhuān)屬大禮包
先講講歷史
再聊聊異步
CompletableFuture。還是后起之秀Kotlin上的Coroutine,還有Android 上官方提供的LiveData(這里說(shuō)下:雖然本質(zhì)上線(xiàn)程管理仍需用戶(hù)自己,但是常見(jiàn)的比如Room數(shù)據(jù)庫(kù),Retrofit等等都有現(xiàn)成的LiveDataAdapter,實(shí)際上并不需要我們過(guò)多操心線(xiàn)程問(wèn)題)。相比之下,RxJava優(yōu)勢(shì)并不那么明顯,相反劣勢(shì)卻很突出。RxJava 門(mén)檻太高
投入高,收獲少
你永遠(yuǎn)無(wú)法預(yù)測(cè)你同事的RxJava水平
RxJava的行為并不可預(yù)
map和flatMap的區(qū)別。還有flatMap和concatMap的區(qū)別。簡(jiǎn)單的講map是一對(duì)一,flatMap是一對(duì)N的map然后在進(jìn)行flatten操作。還有些教程直接寫(xiě)出flatMap無(wú)序,concatMap有序。其實(shí)這些都只是簡(jiǎn)單總結(jié),而實(shí)際的行為照著相差甚遠(yuǎn)。比如flatMap在第一個(gè)error的時(shí)候會(huì)不會(huì)繼續(xù)繼續(xù)觸發(fā)第二個(gè)?如果我想繼續(xù),將如何操作?再比如concatMap在遇到第一個(gè)Observable不會(huì)中斷的時(shí)候,怎么繼續(xù)下一個(gè)?RxJava太容易出錯(cuò)
with great power comes great responsibility. RxJava就是這樣。在簡(jiǎn)單易用的同時(shí)他太容易被濫用了。我在實(shí)際工作中碰到的例子:
val stationId =?"5bCP6Iqx"
val statoin:Observable?= staionRepo.getStationById(stationId)
val stationLine:Observable?= station.flatMap{station ->stationRepo.getLine(station)}
return?Observable.merge(station.map{it.toUiModel()},
? ? ? ? ? ? ? ? ?stationLine.map{it.toUiModel()})
val stationId =?"5bCP6bif"
val statoin:Observable?= staionRepo.getStationById(stationId)
return?station.publish{selector ->
Observable.merge(selector.map{it.toUiModel()},
? ? ? ? ? ? selector.flatMap{station -> stationRepo.getLine(station)}
? ? ? ? ? ? .map{it.toUiModel()})
}
RxJava還是過(guò)于理想化了
RxJava起于異步,卻也不單單是異步
LiveData。而LiveData無(wú)疑也是大量借鑒了RxJava的思想。總結(jié):RxJava雖然優(yōu)秀,但并不適合所有人
前線(xiàn)推出學(xué)習(xí)交流一定要備注:研究/工作方向+地點(diǎn)+學(xué)校/公司+昵稱(chēng)(如大數(shù)據(jù)+上海+上交+卡卡),根據(jù)格式備注,可更快被通過(guò)且邀請(qǐng)進(jìn)群
掃碼加我微信和大佬們零距離
歷史推薦 一張900w的數(shù)據(jù)表,干脆把花費(fèi)17s執(zhí)行的SQL優(yōu)化到300ms了 阿里巴巴微服務(wù)架構(gòu)的四大金剛利器 面試官問(wèn)我:一個(gè) TCP 連接可以發(fā)多少個(gè) HTTP 請(qǐng)求?我竟然回答不上來(lái)... 真香!我終于干掉了該死的 if-else... 刷題一個(gè)半月,一口氣拿下騰訊、華為、Oppo、微軟7個(gè)大廠offer,字節(jié)跳動(dòng)薪資漲幅60%! 好文點(diǎn)個(gè)在看吧!
評(píng)論
圖片
表情


