@Swift2017參會(huì)筆記(部分)


Swift with Hundreds of Engineers——Motivation, Architecture, Learnings

Tuomas Artman, Staff Engineer, Uber
主要講述了Uber從OC遷移到Swift的動(dòng)機(jī)、目標(biāo)以及坑的解決方案。
動(dòng)機(jī)主要是看到了Swift的發(fā)展?jié)摿?,而且已?jīng)初步穩(wěn)定。

目標(biāo)

  • 確保核心業(yè)務(wù)流程的可靠
  • 支撐UberApp未來(lái)的發(fā)展--分離、解耦
  • 為工程師、設(shè)計(jì)師提供詳細(xì)計(jì)劃,確保各司其職,各有所務(wù)
  • 流程自動(dòng)分析、記錄、調(diào)試、跟蹤
  • 第三方插件風(fēng)險(xiǎn)檢測(cè)
  • 性能調(diào)優(yōu),完美支持低版本API、低配設(shè)備

存在問(wèn)題

  • App體量過(guò)大,上萬(wàn)個(gè)文件,百萬(wàn)行代碼

經(jīng)驗(yàn)總結(jié)

Swift的優(yōu)缺點(diǎn)

優(yōu)點(diǎn):

  1. Swift的語(yǔ)法嚴(yán)謹(jǐn),在編譯時(shí)已經(jīng)避免了很多不必要的bug。使得Swift版Uber的崩潰率僅為安卓的1/3;
  2. 集成靜態(tài)檢查測(cè)試,規(guī)范工程師代碼;
  3. 語(yǔ)法更貼近JAVA/JS,安卓工程師較OC更為歡迎。

缺點(diǎn):

  1. 難以測(cè)試,objc下可以使用OCMock來(lái)mock對(duì)象。但是,由于swift的runtime比較弱,所以,swift上一般要手動(dòng)寫(xiě)mock;
  2. 編譯巨慢;
  3. 包體積較大;(原因:結(jié)構(gòu)體、可選值、泛型、Swift的Runtime庫(kù))
  4. 啟動(dòng)速度。(原因:動(dòng)態(tài)庫(kù)鏈接、測(cè)試的配置文件,重新排序符號(hào)表)

解決方案:

  1. ~
  2. 棄用Xcode,使用alternatives,使用更多frameworks,-warn-long-function-bodies檢測(cè)編譯耗時(shí)過(guò)久的方法并嘗試改善,將多個(gè)文件合并為一個(gè)將極大提高你的編譯效率,Xcode配置,使用Buck。

最后的友情提示:
當(dāng)你的開(kāi)發(fā)團(tuán)隊(duì)越來(lái)越大時(shí),你務(wù)必:

  1. 注意編譯時(shí)間
  2. 檢測(cè)二進(jìn)制文件大小
  3. 嘗試解決如何單元測(cè)試
  4. 開(kāi)始使用Buck

Concurrency on iOS

Sam Davies,RayWenderlich CTO
印象:很酷,有hip-pop范??
線程優(yōu)先級(jí)翻轉(zhuǎn)、線程死鎖的概念。
提供了Promise方案解決異步流程處理及回調(diào)地獄問(wèn)題。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 發(fā)現(xiàn) 關(guān)注 消息 iOS 第三方庫(kù)、插件、知名博客總結(jié) 作者大灰狼的小綿羊哥哥關(guān)注 2017.06.26 09:4...
    肇東周閱讀 15,400評(píng)論 4 61
  • 明天,它就在那兒,已經(jīng)在了。 20歲過(guò)后感覺(jué)時(shí)間過(guò)的越來(lái)越快,稍微一個(gè)不注意大把的時(shí)間就溜走了,除去對(duì)自己無(wú)作為的...
    急躁的蝸牛閱讀 3,721評(píng)論 1 6
  • 看到此晨讀文章,我竟然想跑一下題,因?yàn)槲衣?lián)想到之前看到奇葩大會(huì)上的一個(gè)論點(diǎn):朋友是負(fù)能量狂魔,要不要跟ta絕...
    Jake先森閱讀 247評(píng)論 0 1
  • 1.對(duì)于這個(gè)標(biāo)題,你服不服 你已經(jīng)在雞血與頹廢的邊緣掙扎良久,是你的斗志不能繼續(xù)激昂,還是懶惰本身就是一個(gè)不能逾越...
    古月適之不適閱讀 195評(píng)論 0 0
  • 從今天開(kāi)始開(kāi)啟十一小長(zhǎng)假模式。早有一個(gè)不為人知的愿望:在父母75歲(但愿能到80歲)前帶他們游歷全中國(guó),每年...
    筱竹華倩閱讀 322評(píng)論 0 1

友情鏈接更多精彩內(nèi)容