响应式编程是一种通过异步和数据流来构建事物关系的编程模型。这里每个词都很重要,“事物的关系”是响应式编程的核心理念,“数据流”和“异步”是实现这个核心理念的关键。为了帮助大家理解这个概念,我们不妨以App初始化业务为例来拆解一下这几个词。
这是一个比较理想化的APP初始化逻辑,完成SDK初始化,数据库初始化,登陆,之后跳转主界面。下面小编仔细给大家说一下。
事物的关系
是一个十分宽泛的概念,它可以是一个变量,一个对象,一段代码,一段业务逻辑.....但实际上我们往往把事物理解成一段业务逻辑(下文你均可以将事物替换为业务逻辑来理解),比如上图中,事物就是指APP初始化中的四个业务逻辑。
数据流
关于Rx的数据流有很多说法。虽然我明白这只是想强调流的重要性,可是这些话折射出来的编程思路其实是很虚无缥缈的,只会让开发者对于Rx编程更加迷惑。实际上,数据流只是事物之间沟通的桥梁。
异步
异步编程本身是有很多优点的,比如挖掘多核心CPU的能力,提高效率,降低延迟和阻塞等等。
但实际上,异步编程也给我们构建事物的关系提供了帮助。
在APP初始化中,我们能发现SDK初始化,数据库初始化,登陆接口这三个业务本身相互独立,应当在不同的线程环境中执行,以保证他们不会相互阻塞。而假如没有异步编程,我们可能只能在一个线程中顺序调用这三个相对耗时较多的业务,最终再去做页面跳转,这样做不仅没有忠实反映业务本来的关系,而且会让你的程序“反应”更慢。
小结
总的来说,异步和数据流都是为了正确的构建事物的关系而存在的。只不过,异步是为了区分出无关的事物,而数据流(事件流)是为了联系起有关的事物。
易点科技成立于2009年,一直专注于IT顾问咨询、信息平台系统开发、企业网络方案解决与运营。服务内容包含pc+手机响应网站建设、B2C购物商城定制开发、微信公众号定制开发、企业管理小型系统定制开发。