天天看點

Weex團隊負責人:我眼中的Weex和Weex開源那些事

12月15日,阿裡巴巴宣布将移動開源項目weex捐贈給apache基金會開始孵化,weex有望成為中國移動領域的首個apache頂級項目,這意味着中國移動技術開始反哺世界。據悉,這也是繼jstorm、rocketmq之後,阿裡向apache捐贈的第三個項目。

下面是weex團隊負責人關于weex和weex開源的一些看法和觀點。

10月底雲栖大會開源專場阿裡雲唐容邀請我過去做weex開源為主題的演講。看了下speaker清單:第一位docker的john willis(知名devops專家),第二位是我,第三位mysql之父michael widenius(mysql第一行代碼的作者),第四位阿裡雲褚霸大神,感謝阿裡雲認同之外更多是壓力山大,一是擔心自己在前輩大神和業界同仁面前妄言二是真心希望給業界講點什麼,哪怕讓大家記住一兩句話也行。

準備演講ppt過程更是一個持續總結和自我修煉的過程。回到一年前我們讨論weex是否開源的時候,有追技術熱點、開源趕時髦的想法,但内心堅信的一點是我們認為weex可能是在移動技術這塊唯一做技術生态的機會。與此同時針對“weex是什麼、要什麼”也展開了大量讨論,weex不是rn、三端一緻、vue,這些點都很重要但不一定是最本質的了解。

整個項目開源準備從春節開始一直到4月,大量幕後工作(代碼去内部邏輯、代碼倉庫遷移github、文檔、demo、官網)。中間也一直跟業界交流,一直被追問我們對weex的了解和開源項目維護問題。記得有次geekbang的selina過來一次合作交流,被問到weex相關問題我當時一個觀點是“在移動時代沒有找到一個比html/css/js更合适描述界面和表達業務的方式,目前智能手機gui體系隻是對html拙劣的逼近和模仿。weex/rn從某種意義上是必然的産物”。

坦言當時weex開源還是處在巨大的争議中:一個是我們秉承的三端一緻到底是為了差異而差異,還是我們有自己的思考和堅定信念,業界對于我們能做到三端一緻也是持懷疑态度,二是阿裡過去開源積累的負面印象給這個項目開源帶來不少挑戰。這些擺在面前的困難和挑戰,促使我們不斷思考weex的開源之路怎麼走,我們的信心和勇氣也處于煎熬之中。

時間一天天逼近,各項準備工作逐漸傳遞,離我們既定4月21日qcon宣布開源内測越來越近了。對于weex開源内測能夠達到的效果也放在了桌上讨論,到底weex開源能夠吸引多少人?到底是要做内測還是公測、内測說法是否合适?内部争議不斷,技術團隊的謙虛和不自信的秉性也對合作的市場營運團隊造成了困擾。整個事情的不确定性很大,但既定的目标還是要持續往前滾動,該決策的要決策,該執行的要執行。

作為團隊負責人我在這個時候壓力不小,一直擔心weex開源這一槍打出去就啞掉了後續就無從談起。3月19号周末在家,壓力之下突發奇想--"我們應該立即在集團内部做個開源内測,看看集團内部開發者的反響"。一想到就說做就做,在内網讓團隊立即寫了篇集團内開源内測的号召文章讓集團技術發展部推廣了下。結果這樣一個形式粗糙簡陋的活動形式收到的效果出乎我們的意料,集團不少同學給我們貢獻了一些有意思的demo群組件,正是這些最早一批的社群貢獻給了我們堅持下去的信心和鼓勵。然後就是4月21号qcon開源内測的故事:從4月20号晚上團隊趕weex官網釋出折騰到淩晨4點,再到qcon當天南天的keynote演講非常成功爆棚當場引起業界強烈反響-讓業界看到了我們對移動技術方向的深刻了解,緊随其後的是海量開發者申請郵件源源不斷進來,weex開源之路就此啟動。

事後來看開源内測幫助weex在可控範圍内逐漸提升開發者體驗起了非常關鍵性作用,讓我們有機會去不斷自我修正,避免大量開發者湧入因為項目本身不成熟導緻失控。當我們沖出去開源才知道weex各種工具在開發者環境下的大量問題、開發者對調試工具的強烈訴求、文檔的問題。大量輸入也使得weex項目變得更加完善、健全、更加有人情味。在開源内測2個月,我們滿腔熱血和激情服務了大量開發者,解決了不少問題,也讓社群看到了我們的決心,一些熱心的開發者也開始幫忙自發建立weex help論壇、qq群,weex的社群的雛形就此形成。

到後來就是6月底的正式開源,團隊一邊兼顧業務落地的壓力一邊要兌現在qcon上的承諾--“6月底weex正式開源”,其實是蠻不容易的。開源當天我們做了個小慶祝儀式,這個也是後來大家在微網誌上看到團隊對外第一次整體亮相--“小夥伴們以滿滿的熱情和儀式感表達對weex開源的熱愛和執着”。

開源路上還值得一提的是引入vuejs作者尤雨溪作為weex顧問的故事。其實勾股跟小右接觸很久談了接近小半年,在小右進來的工作形式和職責上一直有一些小糾結。主要在集團層面過去也沒有可參考的例子,要說服老闆、hrg、公司方方面面要做不少努力,同時也要兼顧尤小右的感受。我個人的原則是“盡最大可能尊重小右,最終在工作形式上也大膽決定讓小右全部面向開源社群工作,一切的傳遞和合作在社群進行”。我們做的是開源的事情,也希望小右的工作成果在社群展現,服務于熱愛weex和vue的社群開發者。這樣原則一确定,合作形式就清晰簡單,彼此合作起來也會少了不必要的束縛和壓力。

不過這個事情的促成其實還是要感謝我的boss南天,讓我們在這個事情上自由折騰去嘗試一些創新的想法,也真心期待weex和vue的合作真正不負社群的厚望。9月3号南京jsconf上尤雨溪正式宣布“作為技術顧問加入weex團隊,推進weex和vue在前端架構和社群融合”,社群回報幾乎全是正面評價。那天我跟勾股說了一句話--“小右這個點上加入是最合适的時間點,過早過晚都不是好的時機。”

然後回到文章一開始提到的雲栖開源峰會。在開源峰會10月份之前團隊受邀在業界做了不少分享,中間收到社群開發者的回報--“一些業界公司擔心這個項目過于阿裡化停掉了正在調研接入weex的嘗試”。這個促使我們思考怎麼讓這個項目變得更加中立,讓更多的開發者可以參與進來一起貢獻。團隊讨論後覺得推動weex去apache社群可能是一條讓業界放心的路。于是開始行動起來,最早找到集團jstrom的紀君祥,老紀很熱心也一直認為weex這樣的項目應該建構更廣泛的影響力,我們在理念和方向上一拍即合開始準備起來。

老紀在weex進apache孵化器之路做了大量工作,上周還在給weex團隊介紹apache社群的工作流程。通過老紀我們也接觸到apache kylin的luke老師,正好qcon上海luke老師有演講,我們跑過去跟luke老師當面交流。一個多小時交流過程luke老師給我們講解了apache社群秉承的理念規則和apache kylin的the apache way,也讓我們領略到真正熱愛開源技術人的風采。最終我們邀請到luke老師和另外一位老師作為weex項目的mentor,但是項目的champion還空缺。是以這次雲栖大會開源峰會我有兩個任務:一是将weex我們一直堅持的理念講給大家;二是尋找champion。

在開源峰會的ppt準備中,我一直在思考要給業界講點什麼,腦海中全是這半年weex在集團的落地之路(團隊諸多艱辛和永不停歇的性能穩定性之路)、這半年開源之路的點點滴滴。weex是什麼?我們到底要堅持什麼?我們花費這麼大力氣做weex開源是為了什麼?這三個why我們一直反複思考也必須回答,坦言想了很久ppt也改了很多遍,想了這十年移動網際網路技術變遷的事情,也想了過去自身諸多技術經曆,想了手淘從2009年到現在的技術架構演進之路--“從native到h5,中間經曆webapp/鳥巢不斷嘗試,再到rn/wvc/weex的殊途同歸”。10月13号晚上,我寫下一段話“weex希望把web統一的技術标準和開放自由分享的精神帶到移動網際網路業務傳遞中來”,這是我們所認定的路。

10.14号下午演講完出乎意料,本來覺得這個場子很多奔着docker和mysql兩位大神來的,結果關注weex關注開源的朋友不少,演講完提問的朋友不少。還記得有人提了微信小程式跟weex的問題,我的了解這完全兩個層面的事情:“小程式更多是封閉的商業生态。weex更願意做移動網際網路業務傳遞的統一技術标準,希望一直堅持開源、中立,大家喜歡拿去用就好不會有任何負擔。至于未來我還是堅信移動網際網路的技術一定會走向成熟統一,統一的技術标準可能會帶來很多美好的東西,這個是技術人願意相信也願意去為之努力的事情”。演講完走出來,身心有股沉甸甸的感覺,對于weex實踐标準化、三端一緻有了更深的了解和發自内心的使命感--“每當我們在标準化多做一點點就能降低開發者很多成本”,回到團隊第一時間找核心骨幹溝通促成weex技術委員會的成立,緻力于推動标準化、規範化在項目落地。

進入8月底阿裡雙十一的壓力撲面而來,weex代替h5成為雙十一終端基礎渲染解決方案是weex團隊的唯一且最重要的任務。如何力保雙十一weex的穩定性和性能、滿足業務的需求、打通研發生産監控的全鍊路、保證業務代碼落地最佳實踐和性能達标、大量不斷推敲的降級方案和反複演練,鬼道、勾股帶領團隊跟雙十一會場團隊一起在聯合項目室一紮就是2個多月。沒有退路,唯有不斷往前,一旦雙十一weex被降級近百人的努力将全部白費。非常幸運加上我們也足夠努力,很慶幸weex扛住了雙十一這次大考的磨砺,交出一份不錯的答卷—“weex 在雙11會場中的覆寫率接近99%,頁面數量接近2000,覆寫了包括主會場、分會場、分分會場、人群會場在内幾乎所有的雙11會場業務。雙十一主會場秒開率97%,全部會場頁面達到93%”。

我一直反複跟團隊講今天weex在業界有一些技術影響力和社群關注,不是我們做的有多好相反很多事情我們做的也不好。隻是很幸運或許是這個項目方向選對了,我們獲得了集團和業界技術人的大量關注和支援,是以才有機會做好這第一步。回歸初心,我們才剛剛開始。堅持标準的路不好走,希望業界有更多朋友一起同行,但我們堅信路走對了就不怕遠。

回想起這十年,大量技術人在跨平台gui、移動應用程式動态性上做的努力、完善移動浏覽器技術再到html5标準、從非智能作業系統到webos再到ios/android系統上不斷追逐界面ui繪制和業務表達效率的提升,再到今天的rn/weex。一切看起來像是一個輪回,技術總是曲折往前但不會簡單重複。