色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

您好,歡迎來電子發燒友網! ,新用戶?[免費注冊]

您的位置:電子發燒友網>源碼下載>通訊/手機編程>

使用Swfit重寫Uber的好與壞

大小:0.5 MB 人氣: 2017-09-28 需要積分:1

  本文出自Uber移動架構和框架組負責人托馬斯·阿特曼于2016年在灣區Swift峰會上的演講,分享了使用Swfit重寫Uber的好與壞。以下為譯文:

  我是托馬斯·阿特曼,目前是Uber移動架構和框架組負責人。Uber現在的用戶量已經達到數百萬,這么大的用戶量,Uber是如何用框架實現的呢?

  Swift與百位工程師的故事——原因、架構、經驗

  今天我想談談一百多名Uber工程師是如何使用Swift編程語言的,在上周三新發布的Rider App主應用程序全部都是用Swift語言重構的。接下來我的分享主要包括三個部分:選擇Swift的原因、Uber新架構;重構經驗。

  優步的開端——重構的原因

  這是整個移動團隊四年前的樣子(指向屏幕顯示有三名工程師的照片),就是從那時開始,他們著手搭建了我們現在這套老應用的基礎。老的應用程序已經穩定使用了四年,但由于移動開發團隊的指數級的增長,這套架構的缺點也逐漸顯示出來,基于這套老架構想做功能開發也變得越來越困難。由于跟不同團隊之間共用了很多ViewController,所以每次也需要對其它的代碼進行測試。老架構真正讓我們感到崩潰的主要原因是它是由兩位工程師寫出來的,但是目前團隊已經發展到了100多人。與此同時,那套產品本身的用戶量也不大。我們已經在多個城市開始運行,產品滑塊底部密集的問題也顯示出來了,原因就是因為所有的團隊都希望在他們所在的城市能夠推出新的產品。我們也想對Rider App做一套全新的用戶體驗界面。基于上述的這些問題,其實歸納起來也就是目前那套應用的架構問題和用戶體驗界面的全新設計問題。未來不再是研究老架構然后去解決問題這種形式了,而是一切都從頭開始。

  2015年做了很多糾正錯誤工作,試圖去完善老的結構,但對Uber的全新設計,將會從根本上解決問題,到時會處于一個更安全的階段,從頭去重新設計也是最理想的一種解決問題的方式。

  重構架構的目標——穩定可靠并且支持未來發展

  基于這兩個重構原因開始了新架構的研發。最基本的需求就是滿足上述兩個要求,保證四條核心流程的穩定,這基本上就意味著崩潰率處于最低級別。 如果您的應用程序沒有崩潰,但用戶仍然停留在某些屏幕上,顯然這問題很重大,這會讓用戶覺得不可靠。

  我們當然也希望新開發的架構能夠支持Uber接下來數年的發展,就像當時設計這套老架構的時候是為了滿足過去這四年發展的想法是一樣的。

  Swift成為了我們的選擇

  為了實現上述的兩個目標,我們選擇了Swift。當時我們認為Swift是更加安全的,至少在設想里是的,然而實際生活中并沒有人去驗證這一點。

  我們認為編譯器中的類型安全性會讓問題更早的暴露出來,而不是等到產品上線以后再出現問題。

  而我們知道,從現在開始的這四年,Swift將會進入到一段黃金發展期,它將會成為蘋果公司未來唯一一門大力推廣的語言。

  時間線

  從今年年初開始啟動的,在二月份的時候,我們當時還希望我們所做的事情是正確的,因為有一些工程師在以前的公司就花費了大量的時間去做重構的事,但最終都以失敗告終。為了保證重構能成功,挑選出了幾位核心工程師,讓他們花了5個月的時間去研究老的架構,在這5個月的時間內,我們就只干這一件事:架構,框架,完成一些基礎的工作,最終搭建了一套很完美的基礎框架,所有人都是以這套基礎框架為原型進行開發。

  6月,架構搭建好,開始讓核心流團隊開始使用。核心流打算采用一種新的uberX騎行或者是uberPOOL騎行,因此我們增加了20位工程師,花了兩個月的時間去審查新的架構,確保我們提出來的東西與之前構建一款新產品的要求是吻合的。事實證明,與最開始的產品要求相比,的確遺漏了一些東西,比如在視圖層,一旦工程師開始進行轉換或者做一些復雜的視圖操作,那么我們必須調整架構以滿足他們的需求。但是過了兩個月,我們取得了新的進展,我們不再需要對代碼庫進行大量遷移,并且把平臺開放給了每一個人,如果他們需要的話,也可以移交他們的功能了。

  新架構

  新架構叫”Riblets”,它是由Router、Interaction、Builder、Presenter、View這幾個核心組件構成的,這也是VIPER框架的一種思想。我們研究了VIPER、MVVM和MVC,最終提出的方案是在VIPER基礎之上增加一些我們自己創新的元素在里面。最終目標就是將每個功能模塊化,并且每一個模塊可以獨立的進行測試。Riblet框架里的每一個核心組件都有一個協議接口,所以開發者可以把每一個單元單獨拿出來,對它進行充分的測試。Riblets框架里的每一個模塊都會在樹里面進行管理,因此沒有狀態機,取而代之的是一個狀態樹。狀態樹里面的每一個節點就是一個Riblet,新架構中的核心部分是基于業務邏輯的,而不是視圖邏輯,并且所有的業務邏輯都是由本地決定的。

非常好我支持^.^

(0) 0%

不好我反對

(0) 0%

      發表評論

      用戶評論
      評價:好評中評差評

      發表評論,獲取積分! 請遵守相關規定!

      ?
      主站蜘蛛池模板: 最近日本MV字幕免费观看视频 | 亚洲国产精品日本无码网站| 花蝴蝶免费观看影视| 91偷偷久久做嫩草电影院| 日韩精品亚洲专区在线电影不卡 | 99久久全国免费久久爱| 偷窥美女3| 麻豆国产96在线日韩麻豆| 国产精品久久久久久久AV下载| 友田真希息与子中文字幕| 肉蒲团从国内封禁到日本成经典| 久久a级片| 国产电影无码午夜在线播放| 2020精品极品国产色在线| 午夜在线观看免费观看 视频| 末班车动漫无删减免费| 娇喘高潮教室h| 钉钉女老师| 99国产在线精品观看二区| 亚洲精品无码午夜福利在线观看| 日本妈妈在线观看中文字幕| 久久国产主播福利在线| 国产乱码一区二区三区| china男士同性视频tv| 中字幕久久久人妻熟女天美传媒 | 99re久久超碰视频精品| 亚洲乱码国产一区三区| 少妇被躁爽到高潮无码久久| 嫩草影院在线观看精品| 久久re6热在线视频精品| 国产精品无码人妻99999| 成人无码国产AV免费看| 97caopeng| 云南14学生真实初次破初视频 | 芭乐草莓樱桃丝瓜18岁大全| 5566精品资源在线播放| 用震蛋调教女性下面视频| 亚洲在线无码免费观看| 亚洲精品国偷拍电影自产在线| 午夜国产在线观看| 少妇人妻偷人精品视蜜桃|