《手機(jī)淘寶客戶端架構(gòu)探索宗心》由會員分享,可在線閱讀,更多相關(guān)《手機(jī)淘寶客戶端架構(gòu)探索宗心(19頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、單擊此處編輯母版標(biāo)題樣式,單擊此處編輯母版文本樣式,二級,三級,四級,五級,*,*,手機(jī)淘寶客戶端架構(gòu)探索實踐,關(guān)于,于佳(宗心),2,011,:,阿里巴巴中文站,阿里巴巴手機(jī)客戶端,android/,iOS,開發(fā),2,012,:阿里巴巴無線事業(yè)部,手機(jī)淘寶客戶端,iOS,開發(fā),阿里巴巴無線事業(yè)部,負(fù)責(zé)手機(jī),淘寶并為阿里巴巴各條無線產(chǎn)品線提供基礎(chǔ)技術(shù)和設(shè)施,發(fā)展歷程,2010,2012,2013,Android:,披著,App,外衣的,Mobile Web,iOS:,圍繞購物主鏈路的基本功能,業(yè)務(wù):單工程多分支開發(fā),底層:獨(dú)立的中間件工程,Android,:,Atlas,插件框架,iOS,:多
2、工程插件化開發(fā),1.0,2,.0,3,.0,產(chǎn)品挑戰(zhàn),承載并整合多樣化的業(yè)務(wù)生態(tài),研發(fā)挑戰(zhàn),去年,All-In,的時候,大量業(yè)務(wù)的同時涌入,火車模型的懸崖效應(yīng),10,余個團(tuán)隊的代碼整合,量變,呼喚,質(zhì)變,!,痛點(diǎn),協(xié)同方式,迭代依賴,分支管理,合并依賴關(guān)系過于復(fù)雜!,調(diào)試自測效率,模塊依賴下的不穩(wěn)定因素,業(yè)務(wù)多,回歸成本大,測試資源嚴(yán)重不足!其他模塊引起的不穩(wěn)定性因素,發(fā)布的靈活性,版本發(fā)布無法快速響應(yīng),線上已發(fā)布版本穩(wěn)定性,灰度以及線上版本,crash,難以修復(fù)!,2014,手機(jī)淘寶自誕生以來,最大規(guī)模的底層重構(gòu),改變:開發(fā)方式,工程結(jié)構(gòu),架構(gòu)模型,打包方式,探索新的路線,圍繞著開發(fā)效率和性
3、能穩(wěn)定性等一系列問題,工程拆分,支持多團(tuán)隊并行開發(fā),架構(gòu)重構(gòu),重新梳理容器和總線規(guī)則,配套工具,使用有力工具增加開發(fā)效率,工程拆分,并行開發(fā),業(yè)務(wù)解耦,獨(dú)立調(diào)試,集成之前,在穩(wěn)定環(huán)境下測試,易于集成,修改配置完成集成,工程拆分,開發(fā)階段,提供穩(wěn)定的開發(fā)環(huán)境(底層庫,接口),各個業(yè)務(wù)方獨(dú)立開發(fā),測試階段,單獨(dú)業(yè)務(wù)獨(dú)立打包,針對該業(yè)務(wù)的測試回歸,集成階段,修改,podfile,進(jìn)行集成測試,針對整體流程做回歸,架構(gòu)重構(gòu),需要解決的問題,迭代開發(fā),并行開發(fā)能力差。,耦合嚴(yán)重,核心功能(,URL,導(dǎo)航,)復(fù)雜,試錯成本過高,增加減少業(yè)務(wù)帶來的成本。,快速迭代下的穩(wěn)定性問題。,指導(dǎo)思想,分而治之,并行開
4、發(fā),一切皆組件,BundleApp,解除耦合,制定標(biāo)準(zhǔn),總線,URL,總線,(跨平臺統(tǒng)一,URL,尋址方式,),:,三平臺統(tǒng)一,URL,,自動降級,,,中心分發(fā),(支持,hook,),服務(wù)總線,:根據(jù)服務(wù)接口提供穩(wěn)定服務(wù),消息總線,:中心分發(fā),按需加載,開發(fā)透明,只需要遵守規(guī)則,不關(guān)心底層,/,其他業(yè)務(wù)實現(xiàn),Bundle,(deployable unit),Runtime,Bus,(UI&Service,&Message),Lifecycle Management,Bundle Management,UIs,Services,App/Service Project,RuntimeProject
5、,Bus Library,Libraries,Libraries,減少新業(yè)務(wù)接入,/,移除成本,標(biāo)準(zhǔn)化,統(tǒng)一的通信調(diào)用標(biāo)準(zhǔn),,bundle,間互通的基礎(chǔ),無法回避的瘦身問題,靈活性,Bundle,自由組裝(淘寶生活,碼上淘),中間件基礎(chǔ)庫自由引入,及時響應(yīng)線上問題,Move fast and break things,via,Hot Patch,線上嚴(yán)重問題快速修復(fù)(小時級的響應(yīng)時間),AOP,編碼形式,Before,/,After/Replace,某個方法,編寫容易,發(fā)布規(guī)范,配套工具,工程拆分遇到的問題:,頻繁的更換,spec,源碼引入造成的,pod,update,緩慢等原因,開發(fā)階段集成
6、階段等問題,工具解決,摩天輪自動打包平臺(自動生成,spec,,,framework,引入),開發(fā),-,集成,-,灰度,多階段管理,其他工具解決的問題:,核心鏈路性能監(jiān)控平臺,Crash,分析平臺,耗時,2,個月完成,6,月初上線以上,集成,Bundle,:,30+,改造為服務(wù):,10+,(登錄、緩存,、搜索組件),Hot Patch,修復(fù)線上嚴(yán)重故障,10+,起,Patch,最大,6KB,,大部分不到,1KB,(,iOS,),最大的陣痛,:底層依賴遷移引起的編譯失敗,Bundle,重組,互通有無。,業(yè)務(wù)復(fù)用,減少人力,基礎(chǔ)復(fù)用,做深做精,敏捷開發(fā),快速試錯,開發(fā)透明,實時發(fā)版。,動靜結(jié)合,開發(fā)透明,動態(tài)部署,渠道推送,未來,于佳,/,宗心,資深開發(fā)工程師,Alibaba,無線事業(yè)部,新浪微博:淘宗心,Thank,you,