Weex:JS&Web能力拓展萬物互聯的探索
原創2016年8月26-27日,由51CTO.com主辦的【WOT2016移動互聯網技術峰會】在北京粵財JW萬豪酒店隆重召開。自2012年以來,WOT品牌大會秉承專注技術、服務技術人員的理念已經成功舉辦十一屆,不僅積累了大量的專家資源,更獲得廣大IT從業者和技術愛好者的認可和好評,并成為業界重要的技術分享及人脈拓展。
本次【WOT2016移動互聯網技術峰會】分為10大技術主題,分別是應用架構、平臺技術、創新技術、VR技術、前端技術、性能優化、直播技術、運維與安全、數據分析、APP技術專場。51CTO.com作為本次大會的主辦方,將通過快速報道、現場專訪與后期視頻等多種形式,向廣大用戶全方位展示這場技術盛宴。
下面是大會主會場上來自淘寶移動平臺的基礎平臺部負責人吳志華老師帶來的主題為《Weex:JS&Web能力拓展萬物互聯的探索》的演講實錄。
在阿里巴巴從準備開源到現在一共8個月,這期間業界有很多聲音。我們在這個項目當中遇到了大量的一個技術的挑戰,以及大量的問題。在開源當中有很多心路歷程,接下來和大家一一說下。
關于Weex主題分五個部分。***部分,介紹Weex這個項目是什么,有什么特點;第二點,對于阿里巴巴來說為什么要做Weex這樣一個項目,基于行業的技術趨勢思考是什么,以及與阿里巴巴的無線技術有什么關系;第三點,是大家比較關心的Weex項目,在阿里巴巴應用的情況和落地的實踐是怎樣的。接下來我談一談Weex作為一個對外的項目,今天在開源生態上面,開發者服務方面我們做什么事情,取得了怎樣的成績?
我全名就是吳志華,花名是天施。個人經歷,我一直在做移動的基礎技術,我負責的團隊就是阿里巴巴移動基礎技術平臺,包括整個阿里巴巴網絡的接入,雙11流量是團隊在做。移動網絡接入,以及網絡的消息中間件的問題,還有整個集團推送和移動端數據采集。
我們對于Weex有這樣一個定義公式,這個公式兩個含義。Weex這樣一個公式把模板Weex,JS輸入進來得到一個UI,這就是徹底以提倡的方式開發。
我們的官網有三個特點,非常輕量級,可擴展和高性能。左邊是Weex代碼一個樣式一個寫法,看起來比較的普通。這樣一個技術的框架有兩個特點,寫一份Weex代碼,就可以在Android,H5通用,以后還可以在更多的設備端通用。
看一下Weex為什么是web以外方式開發H***PP呢?首先,寫完代碼和前端代碼以后,用工具掃描,這個就是在手機上看到一個效果。編寫一些代碼,就可以生成實時電商一個頁面的的效果,其他頁面也是可以的。
無論是首頁,還是微淘,都全是Weex來支撐,各種大促活動,3月的活動,6.18的活動,都是使用Weex, Weex也是給大促帶來了一些效果,在體驗上有很大的提升。今天阿里內部很多的APP,基本上都是用Weex。
前面簡單地介紹一下Weex是什么?接下來講講,我們為什么做這樣一個項目?今天實際上就是把外部的優秀的前端一些工程和技術能力可以擴到手機端。未來是什么樣子?我們相信未來一定是通過大家努力,可以把今天前端優秀一些工程和技術能力可以弄到各個端。
Weex一個起源,有個非常大的原因,對于開發者來說,設備的平臺兼容性,還有分裂性,已經對開發者造成很大的困難。包括信息孤島的問題,低端機適配的問題,性能優化的問題,我們開發者就是在三個方向做大量的一些投入,投入大量一些精力。今天創業整個大環境和背景下,快速變化業務,快速跟隨業界一個趨勢變化有極大一些要求。業界其實在這個時間上就受平臺分裂一個困擾比較多。所以,這個點上,我們覺得Weex這樣一個方案,可以解決APP高大小的問題,兼容性的問題。
這也是我們想為什么推出Weex的初衷。這個項目就是阿里巴巴基于自己移動客戶端的技術,還有H5的技術,還有追求動態化技術,自然而然一個結果。14年的時候,我們集團所有的業務開始把它的業務做進手機淘寶里。大概有上百個團隊協作,我們考慮代碼怎么去隔離,大家之間相互工程的協作怎么辦,相互之間代碼,自己開發獨立客戶端代碼,天貓代碼怎么集成到手淘里面來,我們提出幾個概念,就是容器化怎么做?解決隔離性,工程持續集成問題。今天這么多人一起弄的時候怎么快速發現和修復呢?
這個時候給業界提出了熱修復這樣一個概念,后面就是動態部署。我們應該就是中國最早實現動態部署的一個超級APP,也就是去年年初的時候實現了動態部署,整個Android客戶端也是可以的。今天手淘下面的一個超級APP一個大的技術團隊,我們接近150多位架構師。而這樣做的一個技術的操作系統,不僅僅是支撐電商,也是支撐整個集團所有的APP。
過去有很多技術,都做了移動網絡的一些解決方案,甚至我們大數據的一些采集Weex這個項目的開始,在阿里巴巴內部就是開源的,所有的同學都會為他去貢獻代碼以及提供意見。慢慢地,Weex項目經過8個月,阿里巴巴內部不僅成為一個技術項目,是成為一個技術生態。
阿里巴巴內部談技術,除了客戶端這一條線以外,H5這個線路不能不提的,H5這個線路非常核心一個場景,就是大促會場,雙11會場。剛剛開始的時候提一個概念,雙11要無線化,這個時候承載就是H5頁面,跟業界方案幾乎是一樣的,我們H5方面沒有做特別的優化。14年以后,這個性能對消費者體驗有很大的影響。希望雙11有一些互動的場景、游戲,能夠給消費者很好的一個體驗。我們提了預加載,離線緩存,網絡上面做了很多的優化。還有主會場的Weex。不滿足與做一個單獨會場一個頁面,我們把它做到一超級APP,去年有幾百個,今年會更多。每一個會場就是幾百個,幾千個頁面。我們要設計復雜的一些會場的框架,會場的APP的生命周期的管理。這個里面有互動游戲的狂歡,都有用到Weex的技術。
13年到16年,我們Weex客戶端發展,這個是Android。去年發了500多個版本!平均一天發1到2個版本,我們有Weex以后,我們可以做什么事情?Weex既可以做到H5靈活性,可以做到好的體驗性能,哪怕蘋果也是承認它的合法性。
阿里一年會場的秒開率變遷,沒有做過H5的秒開率是非常糟糕的。經過我們做優化以后,可以離線緩存了,即便這樣,一到特殊場景下還是有解決不掉的難題。到了今天Weex,秒開這一塊有很大的優勢。而且,內存CPU占用,原生客戶端體驗上面有很大的優勢,這個頁面跳轉,還有動畫都是有優勢的。
這是阿里巴巴動態化幾個探索路徑,剛剛開始是H5,后面通過遠端計算編排丟到客戶端,動態渲染。到了今天,我們提一個概念,就是Weex。
Weex對阿里巴巴帶來的一個價值什么樣子?首先在技術層面上提供了很大的價值,為什么這么說呢?業界更新到60%,Android需要一個月,蘋果一周,Weex是一天。一個代碼,開發團隊帶來大量生產力提升,我們可以節省50%的人力,可以提升50%的開發效率。到現在為止解決了所有Android低端機一些問題。
超級APP一個困境,我是做超級APP的。前兩年講這個包太大,性能穩定性包括多版本,手機的兼容性很難做,投入大量的一些人力和物力一些成本,業務這一塊兒在中國互聯網不停地做業務加法,不可能讓業務不變化,看一下淘寶,支付寶,也是非常的龐大。不說這樣一個包的大小和代碼規模,大量用戶消費者下載這個APP體驗的問題,還有內部一些大量的工程協同的一些問題都無法解決。
我們看一個現實,在座有沒有做微信的?甚至其他的一些超級APP的?已經玩兒不下去了,支付寶也是一樣的,怎么辦?不可能不讓業務做加法吧?Weex獲取就是一劑良方,我們的整個Android這一塊,加上1.9兆,Android代碼460K,IOS600K,包大小呢?擴展一些需要自己的組件。同時,我們可以給你提供一些按需打包能力,打包想要一些組件,打包想要H5一些組件。性能穩定性這一塊兒,Weex今天是一個標準的輸入和輸出內核,這樣一個標準內核里面我們做專門內核性能一些定制優化。我們會做***實踐,我們來約束開發者,我們可以Weex比一般的水平,這個是目前實踐一個結果。
目前,開發效率也是會更高。業務上更開心了,可以在線更新。還有穩定性和內核的研發和保障機制。甚至內核需要一些能力,以及VR這方面的能力。甚至我們的數據可視化一些能力。
Weex在阿里巴巴業務上面帶來一些收益,從去年到現在快一年了。包括大規模實踐,推進過程當中得到一些數據,我們頁面的點擊率就是提升5%,這里說一個數據,就是針對我們過去優化到***的H5頁面,就是我們的離限緩存,預加載,網絡優化,UC瀏覽器,沒有加就更好,10%到20%,點擊率提升5%,我們頁面跳失率減少5%,我們比普通H5頁面快4倍。因為前端框架這一塊,數據傳輸這一塊,還有圖片這一塊做了大量的一些優化,我們數據其實就是比H5更小10倍。
Weex在阿里巴巴業務上面一個收益,這個是阿里巴巴手淘的第二個。以更好的內容和更好的表現形式給消費者,更容易被結構化,被大數據所驅動,去線上做一些測試以及更容易個性化一個推薦。
另外,這個是我們的社區這一塊,今天很多開發者,還有自建QQ群,這個討論比較的活躍。最近很開心一個事情,我們內部一些開發者,QQ群開發者說,就是上線了,在群里面說了,我們群里面看到深圳一家公司開始招聘Weex工程師,邀請我們做一個Weex交流,評估Weex這樣一個方案。也看到了一些需求,內部和外部,都是放在我們線上進行討論,大家經常會看到。業界很多開發者在里面討論,通過這樣一些討論也是收獲到很多不一樣的觀點。
開源重點,Weex講一堆開源事情,有一些小小成績。這個其實有很多事情做,就是文檔怎么樣?我們的開發者服務,還有我們的工具體系,這個是需要整個團隊持續優化的。所以,這個月初,在杭州我們宣布中文開發者服務計劃啟動,專人專項解決開發工具的問題,開發者服務的問題。把Weex項目徹底開源開放專線給業界。
談一些未來的一個展望。先說一下近期到中期的,我們對自己有一個目標,就是8到12個月以后,所有的阿里巴巴APP都是用到Weex上面。為了做到這個事情,光靠我們這個團隊很難的,這個團隊相當于做一些基礎的平臺,包括內核,前端工具一些開發工作,我們還有很多的一些不太擅長。就是讓兄弟團隊合作伙伴,甚至我們的社區生態一些伙伴一起做。我們的UI庫,我們一些體系,還有我們的互動能力。還有數據可視化,還有業務上面一些搭建平臺怎么做,大量工作需要這個團隊做。還有內核上,整個內核一些能力,還有內核能力拓展,我們應用一個框架。我們的整個內核穩定性,還有性能,研發機制,整個的一些升級能力。還有自愈機制都需要團隊的支持。
談到***,我們對自己有這樣4句話。***,擁抱開源,回歸生態,萬物互聯,技無止境。阿里巴巴就是一個擁抱開源一家公司,技術體系,技術生態構建過程當中從源當中收獲很多。我們在做Weex這個項目的時候,其實一開始的時候內部有很多的討論。剛開始在想,Weex解決自己的問題就夠了嗎?后來我們決定把Weex開源給業界,這個就是想捐給基金會。我們是這樣考慮的,Weex這個項目在阿里巴巴移動互聯網上面為數不多的做生態,就是外部開發者力量完善我們非常重要的一個項目。我們也是認為這樣一個項目可能就是中國的,我們自己認為,可能就是中國的移動互聯網為數不多的可以做生態,做開發者項目的一個項目。所以,我們是想完全徹底地開源出去,Weex不僅僅通過業界大家一致的努力。不僅僅是一個移動端一個跨平臺一個解決方案。希望大家努力,可以成為一個萬物互聯的解決方案。
以上是51CTO.com記者從【WOT2016移動互聯網技術峰會】一線為您帶來的精彩報道。一大波精彩內容報道正在襲來,敬請持續關注!