nurturance onechance tech( 七 )


我想 , 在一两年内 , 就能看到我的理论是否正确 。
总而言之 , 如在本节开头所说 , Android 状态保存将变成一个烂摊子 。两年多前 , 我曾经写过 ViewModel 架构组件有害的文章[13]时 , 我就预测 ViewModel 会对保存与恢复状态的一点点造成影响 。我所预测的都变成了现实 , 而且现在的情况比我曾经的预测更糟 。

nurturance onechance tech

文章插图
并发
在 Android 并发编程中 , 一个重要的 API 就是 AsyncTask ,  不过它现在已经被弃用掉了 。我之前已经写过很详细的文章分析过它了[14] , 在这里 , 将不再赘述 。
下面我要说的内容 , 有可能会伤害很多读者 , 但是 , 请不要“恨”我 。
RxJava , 是一个 Andorid 中常见的多线程框架 。但是它现在将逐渐退出历史的舞台 。从 StackOverflow 的趋势图可以看出:
nurturance onechance tech

文章插图
RxJava 使用趋势
很多开发者对这个说法提出了质疑 , 他们反驳说这个数据不具有代表性 , 并且我们可以找到其它的理由来解释图上所发生的事情 。他们所说可能是正确的 , 我个人本身也不是数据科学家 。但是从图中我们可以看到 , RxJava 与 AsnycTask 有相同的斜率 。
如果你没有时间去学习 RxJava 如何使用 , 并且你的项目中也没有使用过 RxJava , 我建议你不要在你的项目中使用 RxJava 。事实上 , 我也一直不推荐使用 RxJava  , 现在已经有数据支持我的这个观点了 。
如果你的项目中使用了 RxJava , 你也不用慌张 , 不需要紧急去重构你的项目 。如果你的项目只有你一个人 , 或者整个项目组成员基本不会变动 , 保持项目现状就好了 。但是你需要记住 , 以后要招具有 RxJava 开发经验的人会越来越困难 , 新招开发人员可能需要学习使用 RxJava 。广泛使用 RxJava 的项目 , 在以后也会被认为"不酷" , 就像今天还在使用 AsyncTask 和 Loader 的项目一样 。
我知道 , 很多 RxJava 的开发者都是 RxJava 骨灰级的粉丝 , 他们花了数周的时间去学习 RxJava , 付出巨大的努力才说服队友在项目中使用 RxJava 。现在我却在这里说 RxJava 已经过时了 。我只能说 , 这不是我的个人意见 , 我只是对现有的情况进行分析 , 并根据我所看到的内容做出预测 。我也有可能是错的 。两军交战 , 不斩来使 , 请大家不要“攻击”我 。
在 Kotlin 中 , 使用协程来实现多并发 。最近使用协程实现了一些简单的用例[15] , 我发现它复杂、不稳定 , 甚至还有一些 Bug 。
所有的人都在说 , 协程可以降低并发的复杂度 , 使用并发变得简单 。我从来都不相信这句话 , 因为我知道并发从根本上来说就是很复杂的 。我动手写过一些测试用例过后 , 据我的经验 , 我可以很自信的告诉你 , 协程不能使并变得简单 。我认为 , 协程会增加复杂性 , 我建议你们谨慎使用他们 。
在 Kotlin 中 , 协程将作为处理多线程的默认方式 , 如果你已经开始使用 Kotlin 进行开发 , 那么你应该花点时间 , 去学习一下 , 协程的使用 。


特别声明:本站内容均来自网友提供或互联网,仅供参考,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。