自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

臧成威:美團點評客戶端基于響應(yīng)式的架構(gòu)實踐

原創(chuàng)
云計算
近年來,由于移動客戶端的業(yè)務(wù)復雜度越來越高,而移動客戶端處理的邏輯又基本是異步邏輯,這就需要一種更好的形式來處理大量的異步的情況,減少狀態(tài)并盡量使用聲明的方式來書寫代碼實現(xiàn)需求,而響應(yīng)式恰好能否幫助解決這些異步問題,所以,響應(yīng)式的開發(fā)方式正在被越來越多的開發(fā)者接受。

【51CTO.com原創(chuàng)稿件】近日,51CTO記者對美團點評iOS技術(shù)專家臧成威進行了專訪,一起探討了美團點評客戶端基于響應(yīng)式的架構(gòu)實踐。

【講師簡介】

[[224876]]

美團iOS高級技術(shù)專家臧成威

臧成威,美團點評iOS高級技術(shù)專家。2012年開始接觸移動互聯(lián)網(wǎng),曾從事Android內(nèi)核訂制研發(fā)和iOS 應(yīng)用開發(fā)。2013加入CSDN,開始接觸全棧開發(fā)Ruby on Rails框架。 2014年加入百度任職高級工程師。2015年3月加入美團點評iOS團隊。

近年來,由于移動客戶端的業(yè)務(wù)復雜度越來越高,而移動客戶端處理的邏輯又基本是異步邏輯,這就需要一種更好的形式來處理大量的異步的情況,減少狀態(tài)并盡量使用聲明的方式來書寫代碼實現(xiàn)需求,而響應(yīng)式恰好能否幫助解決這些異步問題,所以,響應(yīng)式的開發(fā)方式正在被越來越多的開發(fā)者接受。

美團點評iOS客戶端基于響應(yīng)式架構(gòu)的誕生

美團點評iOS團隊是國內(nèi)較早使用ReactiveCocoa(簡稱RAC)函數(shù)響應(yīng)式庫的團隊。臧成威老師自2015年加入美團點評開始,就積極的對內(nèi)外進行RAC的使用和原理的指導培訓。

但是經(jīng)過2年多的發(fā)展,美團點評iOS團隊意識到整個團隊對函數(shù)響應(yīng)式編程的學習成本投入太大,對排錯等成本的投入也過于龐大。

基于對函數(shù)式編程和函數(shù)響應(yīng)式編程多年的理解和分析,臧成威老師認為對于工程化而言,面向?qū)ο缶幊滩攀亲詈唵吻胰菀妆唤邮艿?,但是又需要一個響應(yīng)式的能力。所以利用普通的面向?qū)ο笤O(shè)計來實現(xiàn)響應(yīng)式庫的想法就萌生了。

響應(yīng)式庫EasyReact建成后,為了能使其得到更好的利用,更好地降低使用的理解和學習成本,臧成威老師又帶領(lǐng)團隊開發(fā)了基于響應(yīng)式的MVVM框架:EasyMVVM。

基于響應(yīng)式的架構(gòu)簡述

首先,架構(gòu)的最下層提供了一套基于OOP的響應(yīng)式基礎(chǔ)庫EasyReact。它使用圖的數(shù)據(jù)結(jié)構(gòu),構(gòu)建了有向有環(huán)圖。當節(jié)點值產(chǎn)生變化的時候,它會順勢傳播到所有的邊上,進而改變其他的節(jié)點值。同時,每個節(jié)點一對多關(guān)系的關(guān)聯(lián)了監(jiān)聽者,當值發(fā)生改變時,監(jiān)聽者就能異步的得到反饋,這就解決了響應(yīng)問題。同時它也能夠讓兩個層級有了基本的綁定關(guān)系。

但是單有EasyReact還遠遠不夠,如果沒能在其上層建立一套完整的MVVM框架,開發(fā)者就難以有一個整體的思路。所以上層的垂直分層框架EasyMVVM促使大家的邏輯能夠各司其職的放置于各個層級之內(nèi)。

說到打造架構(gòu)過程中遇到的難題,臧老師表示,其實打造一套全新的響應(yīng)式基礎(chǔ)庫EasyReact并不是很難,因為它位于下層,并且沒有其他的依賴。但是在打造其上層框架EasyMVVM的時候,為了滿足View層的需要,就必須要依賴現(xiàn)有的UIKit框架。UIKit中大量API都是基于delegate模式來封裝的,然而這和響應(yīng)式編程的前置聲明理念剛好相反。

為了解決這一問題,美團點評iOS團隊封裝了一些全新的,不基于delegate的UI組件,將聲明式的接口提供給大家。同時還使用組合優(yōu)于繼承的形式提供了組件模塊化方案,方便大家將不同的業(yè)務(wù)邏輯分離,達到復用的目的。

架構(gòu):為業(yè)務(wù)而生

***,臧老師從生產(chǎn)環(huán)節(jié)、用戶使用環(huán)節(jié)和線上收集環(huán)節(jié)三方面講述了架構(gòu)的研發(fā)方向。

從生產(chǎn)的角度來看,架構(gòu)的研發(fā)方向就是自動化生成和可視化編程,所見即所得等。

從用戶使用環(huán)節(jié)的角度來看,架構(gòu)的研發(fā)方向就是動態(tài)化的部署和熱更新的能力等。

從線上收集的角度來看,架構(gòu)的研發(fā)方向就是動態(tài)埋點,自動埋點等。

【51CTO原創(chuàng)稿件,合作站點轉(zhuǎn)載請注明原文作者和出處為51CTO.com】

責任編輯:趙立京 來源: 51CTO
相關(guān)推薦

2018-10-19 14:16:09

Flink數(shù)據(jù)倉庫數(shù)據(jù)系統(tǒng)

2019-08-23 13:10:39

美團點評Kubernetes集群管理

2009-12-25 15:12:01

WPF平臺

2017-02-20 19:23:13

2023-11-14 12:07:43

美團沙龍

2009-06-12 19:18:08

REST客戶端框架JavaScript

2011-08-15 14:09:59

JavaHBase

2017-07-03 15:32:49

數(shù)據(jù)庫MySQL架構(gòu)

2011-04-22 10:34:09

SimpleFrame

2018-03-28 09:53:50

Android架構(gòu)演進

2009-03-18 14:44:34

LinuxqTwitterTwitter

2017-12-29 08:54:58

高可用數(shù)據(jù)庫架構(gòu)

2021-09-22 15:46:29

虛擬桌面瘦客戶端胖客戶端

2018-07-17 14:25:02

SQL解析美團點評MySQL

2017-11-20 11:23:12

MySQLMyFlash閃回工具

2009-06-24 15:16:19

AJAX客戶端

2022-04-15 10:52:50

模型技術(shù)實踐

2025-01-07 08:10:00

CefSharpWinformWindows

2022-08-09 09:18:47

優(yōu)化實踐

2019-08-12 11:00:59

美團網(wǎng)MySQL數(shù)據(jù)庫
點贊
收藏

51CTO技術(shù)棧公眾號