成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

臧成威:美團點評客戶端基于響應式的架構實踐

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

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

【講師簡介】

[[224876]]

美團iOS高級技術專家臧成威

臧成威,美團點評iOS高級技術專家。2012年開始接觸移動互聯網,曾從事Android內核訂制研發和iOS 應用開發。2013加入CSDN,開始接觸全棧開發Ruby on Rails框架。 2014年加入百度任職高級工程師。2015年3月加入美團點評iOS團隊。

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

美團點評iOS客戶端基于響應式架構的誕生

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

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

基于對函數式編程和函數響應式編程多年的理解和分析,臧成威老師認為對于工程化而言,面向對象編程才是最簡單且容易被接受的,但是又需要一個響應式的能力。所以利用普通的面向對象設計來實現響應式庫的想法就萌生了。

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

基于響應式的架構簡述

首先,架構的最下層提供了一套基于OOP的響應式基礎庫EasyReact。它使用圖的數據結構,構建了有向有環圖。當節點值產生變化的時候,它會順勢傳播到所有的邊上,進而改變其他的節點值。同時,每個節點一對多關系的關聯了監聽者,當值發生改變時,監聽者就能異步的得到反饋,這就解決了響應問題。同時它也能夠讓兩個層級有了基本的綁定關系。

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

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

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

架構:為業務而生

***,臧老師從生產環節、用戶使用環節和線上收集環節三方面講述了架構的研發方向。

從生產的角度來看,架構的研發方向就是自動化生成和可視化編程,所見即所得等。

從用戶使用環節的角度來看,架構的研發方向就是動態化的部署和熱更新的能力等。

從線上收集的角度來看,架構的研發方向就是動態埋點,自動埋點等。

【51CTO原創稿件,合作站點轉載請注明原文作者和出處為51CTO.com】

責任編輯:趙立京 來源: 51CTO
相關推薦

2018-10-19 14:16:09

Flink數據倉庫數據系統

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

美團沙龍

2017-07-03 15:32:49

數據庫MySQL架構

2011-08-15 14:09:59

JavaHBase

2009-06-12 19:18:08

REST客戶端框架JavaScript

2018-03-28 09:53:50

Android架構演進

2011-04-22 10:34:09

SimpleFrame

2017-12-29 08:54:58

高可用數據庫架構

2009-03-18 14:44:34

LinuxqTwitterTwitter

2017-11-20 11:23:12

MySQLMyFlash閃回工具

2018-07-17 14:25:02

SQL解析美團點評MySQL

2021-09-22 15:46:29

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

2022-08-09 09:18:47

優化實踐

2009-06-24 15:16:19

AJAX客戶端

2019-08-12 11:00:59

美團網MySQL數據庫

2022-04-15 10:52:50

模型技術實踐

2017-08-01 09:37:00

深度學習美團機器學習
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 日韩伦理电影免费在线观看 | 亚洲视频一区在线 | 视频在线日韩 | 午夜一区二区三区在线观看 | 久草青青草 | 毛片免费视频 | 日日夜夜av | 亚洲瑟瑟| 成人免费看片又大又黄 | 91国产精品 | 精品一级毛片 | 日本久久综合 | 欧州一区二区 | 国产精产国品一二三产区视频 | 国产成人精品免费 | 中文字幕在线视频一区二区三区 | 99精品热视频 | 国产精品区二区三区日本 | 18性欧美| 亚洲欧美综合精品另类天天更新 | 日韩av一区二区在线观看 | 国产在线一区二 | 久久综合亚洲 | 91精品国产色综合久久 | 精品国产乱码久久久 | 色综合久久久久 | 一区二区视频 | 精品毛片 | 精品美女| 精品一区二区三区不卡 | 成人在线一级片 | 国产成人精品视频在线观看 | 国产成人精品在线播放 | 国产国产精品久久久久 | 免费永久av | 成人在线免费观看av | 亚洲a视 | 精品欧美一区二区三区久久久 | 91天堂网| 成人网在线观看 | 精品91久久|