个人对RxJava的看法,应该用它吗?

RxJava是很好的工具,封装了许多规则


优点1:简化逻辑

比如要嵌套请求的时候,这个时候用flatMap操作符就可以实现优雅的链式嵌套请求

优点2:简化代码

他的操作符封装了规则,我们用一个操作符就可以实现许多功能

比如要打包网络请求,这个时候用zip就可以打包数据源

优点3:最方便的线程切换


这些东西,自己当然也可以实现,用代码量去取代这一个个操作符,自己实现也会复杂化逻辑。

所以面临两个问题:

代码量膨胀后的架构的问题

逻辑复杂后的解耦问题


问题1:代码量膨胀

rxjava确实可以替你解决一定的冗余代码,但是面对巨型项目,架构是不可避免的问题。所以如果想不用rxjava,必须做好良好清晰架构、代码拆分的准备


问题2:逻辑复杂化

比如嵌套请求,如果不用rxjava,你需要在第一个请求的回调中再进行另一个请求。而rxjava则是围绕数据源做了一定的同步工作,所以使得你可以在一条链上,整个逻辑就看起来特别清晰。其实这个链式调用自己代码手写完全可以实现。不仅如此,你还可以写成另外的风格。所以rxjava帮你处理好了复杂的逻辑,这些逻辑如果自己写需要不俗的编程水平。可是事实上,设计模式,面向编程,面向切面思想等解耦套路,这种也是优秀程序员不可缺少的东西。


问题3:线程切换

rxjava线程切换特别厉害。可是多线程编程也是优秀程序员必备的东西。锁(sync,reen,cas等),并发容器的使用(线程池 等),采用aqs写出自己的并发容器( 系统有些并发容器有坑)等,这些东西是他没有帮你做的。


所以rxjava可以说是提升程序员段位的bug。封装了许多优秀程序员也要费一番手脚的东西。

推荐学习使用。

也是简化代码逻辑的神器。现在流行一套商业化代码:rxjava+retrofit+glide。

真的很不错。

但是我借鉴了rxjava的代码思维和retrofit的封装思维也实现了一套,虽然不好,但是还算顺手,所以这些东西都弃了。以前我也是这套商业化框架使用者中的一员。(其实我是懒得学新东西了,这样不好)


对于新手,处在用的阶段,推荐还是学学rxjava和这套商业化框架吧。可以因此使得水平得到一个快速提升。

对于中手,处在一个体悟原理的阶段,你可以抛弃rxjava和这套框架,参考他们的思维,用朴素的东西,写出和他们效果相仿的东西;也可以深挖这套框架的原理,让这套框架在你的手上发挥出非常非常强大的力量。

对于高手,可以回归rxjava了,毕竟,能用一行代码写的东西,为什么要用100行呢?


总之,rxjava,是当之无愧的神器,我们没有理由不使用它。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值