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