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