您好,登錄后才能下訂單哦!
講師介紹
郝仁杰,高德地圖無線開發(fā)專家。在7月13日落幕的2019年ArchSummit峰會(huì)上就高德地圖近幾年的App架構(gòu)演化和實(shí)踐進(jìn)行了分享。
背景概述
高德是國內(nèi)領(lǐng)先的數(shù)字地圖內(nèi)容、導(dǎo)航和位置服務(wù)解決方案提供商,端上分手機(jī)和車機(jī)兩條主線。近年來,高德業(yè)務(wù)迅猛發(fā)展,人員規(guī)模急速擴(kuò)張,代碼量急劇膨脹,如何提高團(tuán)隊(duì)高效并行作戰(zhàn)的能力,端架構(gòu)在一致性和動(dòng)態(tài)性方面做了很多嘗試:從最初的雙端原生單體架構(gòu),到地圖引擎下沉C++,再到動(dòng)態(tài)UI框架的建設(shè),收到了一定的成效, 但面對業(yè)務(wù)持續(xù)的高速發(fā)展,依然還有很多方面需要繼續(xù)完善。
為了讓業(yè)務(wù)開發(fā)有節(jié)奏的進(jìn)行,項(xiàng)目上每年會(huì)制定一些公車計(jì)劃。公車就是每個(gè)App版本,貨物就是對應(yīng)的產(chǎn)品功能,貨物組裝就是功能開發(fā),公車計(jì)劃即每年的發(fā)版計(jì)劃,公車按照指定的時(shí)間來,把組裝好的貨物拉走。但由于雙端代碼差異較大、耦合嚴(yán)重、復(fù)用率低、職責(zé)不清晰、平臺(tái)工具簡陋等問題,公車并無法按照計(jì)劃拉走貨物,貨物組裝慢且質(zhì)量差,迫使公車等待,導(dǎo)致整個(gè)版效周期長達(dá)3個(gè)月,崩潰率也高達(dá)萬分之八,公車變成了偽公車。
執(zhí)行方案
為了使偽公車變?yōu)檎婀?,需要解決雙端差異問題、代碼耦合問題和平臺(tái)工具落后等問題,來提高穩(wěn)定性、并行性和高效性。2018年端上通過雙端融合、組件化和研發(fā)中臺(tái)建設(shè)來達(dá)到目標(biāo)。
雙端融合采用下沉C++、上漂動(dòng)態(tài)UI和雙端拉齊的方式來實(shí)現(xiàn)。下沉C++,實(shí)現(xiàn)了跨端的同時(shí)提高了性能;上漂動(dòng)態(tài)UI同樣實(shí)現(xiàn)了跨平臺(tái),且降低了開發(fā)門檻,讓開發(fā)更簡單,效率更高,同時(shí)也為未來動(dòng)態(tài)化做好鋪墊;雙端拉齊更多的是借鑒雙端的優(yōu)勢做到融合,同時(shí)保留雙端的差異作為擴(kuò)展,做到盡量保持一致的同時(shí),也很好地兼容了Android/iOS平臺(tái)的特性。
組件化參考了手淘Atlas、BeeHive和網(wǎng)易LDBusMediator等成熟的容器方案并融合了高德自身的業(yè)務(wù)特點(diǎn)和設(shè)計(jì)思考,定義了容器、模塊、微應(yīng)用、微服務(wù)和頁面路由。借鑒了Android組件化設(shè)計(jì)思想,讓業(yè)務(wù)專注于自身需要的服務(wù),而無需關(guān)注其它。
通過架構(gòu)的分層、分組,讓模塊的歸屬、職責(zé)清晰化。
容器為模塊提供了其內(nèi)部的結(jié)構(gòu)框架、架構(gòu)分層、分組讓模塊找到自己的位置,二者結(jié)合實(shí)現(xiàn)了端上的組件化,解耦了代碼、提高了功能的復(fù)用率,也為業(yè)務(wù)并行開發(fā)打下基礎(chǔ)。
研發(fā)中臺(tái)建設(shè)根據(jù)當(dāng)前的公車流程,結(jié)合組件化方案進(jìn)行細(xì)分,制定了新的產(chǎn)、研、測、項(xiàng)詳細(xì)流程,并將流程中臺(tái)化,降低了風(fēng)險(xiǎn)、提高了效率、實(shí)現(xiàn)了研發(fā)并行。
實(shí)踐收益
雙端融合,解決一致性問題,提高了App的穩(wěn)定性;組件化,解決代碼耦合、提高復(fù)用率;研發(fā)中臺(tái)建設(shè),將流程自動(dòng)化、標(biāo)準(zhǔn)化,同時(shí)結(jié)合組件化,實(shí)現(xiàn)了開發(fā)階段的并行,做到了真公車。發(fā)版周期縮短了一半。
通過針對性代碼質(zhì)量治理,加以平臺(tái)管控,使得崩潰率從萬分之八降低到十萬分之八。
通過工具升級、組件化后基于產(chǎn)物的集成,打包時(shí)間從40mins+降低到8mins。
未來展望
2018年,高德客戶端通過一系列架構(gòu)治理,從偽公車變成了真公車,但這只是近幾年架構(gòu)演進(jìn)的一個(gè)階段性成果。未來,我們要發(fā)揮動(dòng)態(tài)UI的優(yōu)勢,讓業(yè)務(wù)真正動(dòng)態(tài)化起來,從公車時(shí)代跨入到Feature Team時(shí)代,讓公車變成一條條公路,每個(gè)Feature Team就是一個(gè)小汽車,按照自己的節(jié)奏裝好貨物后,就可以在修好的公路上自由的行駛,更好地做到靈活、并行和高效!
結(jié)語
歡迎大家掃描高德技術(shù)公眾號(hào)關(guān)注更多高德技術(shù)及細(xì)節(jié),也歡迎大家加入高德,與我們一同探索高德地圖App架構(gòu)的演化之路!
關(guān)注高德技術(shù),找到更多出行技術(shù)領(lǐng)域?qū)I(yè)內(nèi)容
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。