響應(yīng)式編程是一種通過(guò)異步和數(shù)據(jù)流來(lái)構(gòu)建事物關(guān)系的編程模型。這里每個(gè)詞都很重要,“事物的關(guān)系”是響應(yīng)式編程的核心理念,“數(shù)據(jù)流”和“異步”是實(shí)現(xiàn)這個(gè)核心理念的關(guān)鍵。為了幫助大家理解這個(gè)概念,我們不妨以App初始化業(yè)務(wù)為例來(lái)拆解一下這幾個(gè)詞。
這是一個(gè)比較理想化的APP初始化邏輯,完成SDK初始化,數(shù)據(jù)庫(kù)初始化,登陸,之后跳轉(zhuǎn)主界面。下面小編仔細(xì)給大家說(shuō)一下。
事物的關(guān)系
是一個(gè)十分寬泛的概念,它可以是一個(gè)變量,一個(gè)對(duì)象,一段代碼,一段業(yè)務(wù)邏輯.....但實(shí)際上我們往往把事物理解成一段業(yè)務(wù)邏輯(下文你均可以將事物替換為業(yè)務(wù)邏輯來(lái)理解),比如上圖中,事物就是指APP初始化中的四個(gè)業(yè)務(wù)邏輯。
數(shù)據(jù)流
關(guān)于Rx的數(shù)據(jù)流有很多說(shuō)法。雖然我明白這只是想強(qiáng)調(diào)流的重要性,可是這些話折射出來(lái)的編程思路其實(shí)是很虛無(wú)縹緲的,只會(huì)讓開發(fā)者對(duì)于Rx編程更加迷惑。實(shí)際上,數(shù)據(jù)流只是事物之間溝通的橋梁。
異步
異步編程本身是有很多優(yōu)點(diǎn)的,比如挖掘多核心CPU的能力,提高效率,降低延遲和阻塞等等。
但實(shí)際上,異步編程也給我們構(gòu)建事物的關(guān)系提供了幫助。
在APP初始化中,我們能發(fā)現(xiàn)SDK初始化,數(shù)據(jù)庫(kù)初始化,登陸接口這三個(gè)業(yè)務(wù)本身相互獨(dú)立,應(yīng)當(dāng)在不同的線程環(huán)境中執(zhí)行,以保證他們不會(huì)相互阻塞。而假如沒(méi)有異步編程,我們可能只能在一個(gè)線程中順序調(diào)用這三個(gè)相對(duì)耗時(shí)較多的業(yè)務(wù),最終再去做頁(yè)面跳轉(zhuǎn),這樣做不僅沒(méi)有忠實(shí)反映業(yè)務(wù)本來(lái)的關(guān)系,而且會(huì)讓你的程序“反應(yīng)”更慢。
小結(jié)
總的來(lái)說(shuō),異步和數(shù)據(jù)流都是為了正確的構(gòu)建事物的關(guān)系而存在的。只不過(guò),異步是為了區(qū)分出無(wú)關(guān)的事物,而數(shù)據(jù)流(事件流)是為了聯(lián)系起有關(guān)的事物。
易點(diǎn)科技成立于2009年,一直專注于IT顧問(wèn)咨詢、信息平臺(tái)系統(tǒng)開發(fā)、企業(yè)網(wǎng)絡(luò)方案解決與運(yùn)營(yíng)。服務(wù)內(nèi)容包含pc+手機(jī)響應(yīng)網(wǎng)站建設(shè)、B2C購(gòu)物商城定制開發(fā)、微信公眾號(hào)定制開發(fā)、企業(yè)管理小型系統(tǒng)定制開發(fā)。