京東Taro:用技術解放小程式生產力 | 點評家

Cloudopt點評家發表於2019-04-12

截至2018年11月,微信小程式總量超過120萬,小程式市場規模依然保持著的20%高速增長趨勢。且微信小程式的累積使用者量已突破7億,佔微信月活使用者的70%,日活使用者已達2億。使用者使用習慣形成。

小程式究竟是個什麼?

小程式是一種不需要下載安裝即可使用的應用,它實現了應用“觸手可及”的夢想,使用者掃一掃或者搜一下即可開啟應用。也體現了“用完即走”的理念,使用者不用關心是否安裝太多應用的問題。應用將無處不在,隨時可用,但又無需安裝解除安裝。

與傳統app相比,小程式無需安裝、解除安裝,用完即走,觸手可及,與使用者不是粉絲關係,是訪問關係,後臺資料是微信標準化資料,不能自由選取。

與應用商店相比,小程式沒有應用商店,也不做應用分發平臺,不能進行模糊搜尋,覆蓋的只是使用者的特定場景下的注意力資源,滿足使用者特定場景的需求,不是完整的產品應用。小程式只是連線人與服務的工具,不是流量分發平臺。

目前微信、支付寶、百度、QQ、抖音、今日頭條六大超級APP已悉數入局完畢,至此,小程式生態一超多強的格局形成,2019年小程式必將朝多極化方向發展。

隨著諸多的頂級流量平臺甚至是更多平臺推出自己的小程式,每個小程式甚至是一套完全獨立的開發體系,讓程式設計師們和諸多創業公司們苦不堪言。一方面不知道各平臺是否能帶來足夠多的流量,一方面又缺乏足夠的生產力去適應各個平臺,真是“食之無味,棄之可惜”。

而京東推出了一套遵循 React 語法規範的 多端開發解決方案-Taro。現如今市面上端的形態多種多樣,Web、React-Native、微信小程式等各種端大行其道,當業務要求同時在不同的端都要求有所表現的時候,針對不同的端去編寫多套程式碼的成本顯然非常高,這時候只編寫一套程式碼就能夠適配到多端的能力就顯得極為需要。

使用 Taro,程式設計師就可以只書寫一套程式碼,再通過 Taro 的編譯工具,將原始碼分別編譯出可以在不同端(微信/百度/支付寶/位元組跳動小程式、H5、React-Native 等)執行的程式碼。

近期小編夜探京東祕密基地,特地邀請到了京東的Taro團隊來到 Cloudopt 點評家進行專訪。

以下為點評家與Taro團隊李偉濤(liweitao)的專訪記錄:

您現在是在京東負責哪一塊呢?
我主要是負責部門研發工具的開發以及一些開源專案建設。比如多端統一開發框架 Taro。還有一些與前端相關的開發工具和框架,比如說我們之前做的 Nerv(高效能前端框架),它跟React API一樣,佔用會更小,相容性會更好,相容IE8之類的。

您為什麼會對程式設計感興趣呢?
大學就讀的專業是軟體工程,對網站開發、軟體設計都挺感興趣的,並且在校期間加入一些計算機相關的社團,考慮往這個方向發展,於是就往這一塊鑽研。

那您除了對程式設計有興趣之外還有其它愛好嗎?
平時比較喜歡自駕遊,最近的一次自駕游去了桂林。

能介紹一下您的團隊嗎?
我們團隊目前主要是負責 Taro 這個專案。專案圍繞著 Taro 相關的開發工作,因為它是一個多端開發工具,所以涉及到很多個模組的分工。比如說有人負責程式碼編譯,需要把程式碼編譯成各個端的程式碼,同時有人負責小程式這一塊執行框架的開發。然後還有負責h5相關的,比如負責h5 API來同步實現API元件。還有人負責React Native相關開發,比如說他要把程式碼編譯成HTML5。根據不同端的方向,每個方向會有一個人負責做適配。

為什麼叫Taro呢?
因為我們部門是叫做凹凸實驗室,諧音和奧特曼很像。當時就決定以後我們有新的開源專案,就以奧特曼來命名,所以 Taro(泰羅)是第一個。

相對於其他開發框架來說,Taro有什麼優勢嗎?
Taro 和現行的那些開發框架不同。它使用的是類 React 語法,對於喜歡類 React 的人來說就比 Vue 語法要好很多,吸引力更大。其次,Taro 適配6個端,包括微信、百度、頭條、h5、APP、快應用等等。而目前和 Taro 適配的端數量差不多的只有 uniapp 和變色龍。但從生態角度來講,uni-app 和 Taro 兩個是目前比較領先的。Taro 除了框架本身,它有自己一個不斷的UI庫,社群很多人會為 Taro 貢獻元件庫和 UI 庫。所以 Taro 未來除了在框架核心這邊繼續建設之外,也會在生態以及相關周邊的建設上趕超 uni-app。

Uni-app 他們之前是做Hbuider,在IDE開發工具這一塊會接的比較多。他們先上線了一個外掛平臺,發展生態比如元件擴充會更快速一點。我們也有這方面的規劃,計劃推出一個視覺化的開發工具。比如我們可以通過已經內建的模板直接建立出專案,通過視覺化的方式進行編輯。關於模板這一塊,目前我們已經積累了電商的模板,以後也會補充酒店、訂餐等等涉及各行各業的模板。至於後端方面,後續可能會跟京東雲、騰訊雲有一些合作。

目前團隊的平均年齡是?
Taro專案團隊的平均年齡25-26歲,大家都相對年輕,充滿活力。

目前部門有多少人?分別是負責?
我們部門研發人員約50人,主要為商城主站、微信手Q及部分事業群提供WEB前端開發、小程式開發、APP開發、小遊戲開發、H5動畫開發等能力支援,同時會去沉澱一些業務元件或模板,並研發一些效率提升、開放賦能的工具或者平臺。

開源社群對Taro的影響大嗎?
影響挺大的。一開始很多程式碼都是我們自己寫的,但是到現在已經有約20%的程式碼是他人貢獻的,這個比例應該還在慢慢擴大。因為Taro要做的事情很多,我們人又少,所以它對第三方生態的支援有時候可能不到位。舉個例子,taro最早是不支援mobx的,後來的由網友貢獻的,這個改造工作量非常大,它涉及到大概有二三十個包,並且程式碼量也挺大。所以第三方開發者對我們幫助很大。除此之外,一些有用的建議以及一些程式碼提交都幫助挺大的。

太多企業碰到類似小程式這樣的問題,所以Taro之後的影響力也會越來越大。我們現在正在支援的快應用已經接近開發尾聲。QQ輕應用這個專案目前剛做完文件,即將進入開發。QQ瀏覽器的專案也會在近期開始做。像微信、百度、頭條這些現在已經是支援得非常好了。

當時是怎麼萌生開發Taro的想法呢?
其實是因為當時我們支援的業務,這個業務既做小程式,也做h5,後來還做了APP,所以就得同時維護三套程式碼:小程式一套程式碼,h5一套程式碼,APP一套程式碼。因此我們萌生能不能就用一套程式碼去實現各個端的想法,而且當時我們剛好在做類React的框架。所以整個部門的技術選型就轉向了React的陣營。後來我們在思考怎麼寫一套程式碼,然後編譯到各個端。其實就是一個語法轉換的過程,我們把React語法當成一門DSL來用。

如果讓您舉例Taro的優勢,您會舉例哪些呢?
首先是目前支援的端比較齊全,到了4月份將會增加快應用的支援。從活躍度來講,Taro在開源社群內是最活躍的,有很多人來貢獻程式碼,提交建議。從生態上來講,Taro還沒有那麼多優勢,但未來會有很多完善我們生態的規劃。比如近期會上線Taro的物料平臺,平臺會提供我們之前已經積累的元件和模板。此外,後續會通過一些激勵措施鼓勵使用者往Taro貢獻程式碼或建議。我們還跟小程式的官方團隊進行緊密合作,探討如何進行優化,鼓勵開發者去貢獻。

Taro目前有做宣傳或營銷的打算嗎?
暫時沒有商業宣傳或營銷的規劃。

在Taro的整個開發過程中有沒出現比較大的失誤?
去年開發的過程中碰到過一些問題。那時候 Taro 剛上線,當時主打小程式和h5編譯。小程式元件化有一個選型的問題,最開始我們是用Templete模板去實現元件化的。那時對小程式瞭解不夠深刻,而且自定義元件剛剛出來,還不夠完善,很多網友對這個版本質疑也較多。後來痛定思痛,從微信官方尋找解決方案,重新審視了這個自定義元件。我們當時認為有一些特性是靠自定義元件無法實現的,後來經過深入研究發現這些特性可以通過特定手段繞過。於是我們就用自定義元件來重新開發了一個版本,穩定之後正式推出1.0版本。

目前給Taro貢獻程式碼的有非京東的嗎?多嗎?
現在應該有180個左右開發者參與了此專案。社群使用者的貢獻在剛剛提到的mobx等一些功能這兩塊程式碼量佔了大部分,其他部分的貢獻一般是一兩行或幾行程式碼。

Taro的未來發展方向和發展計劃是?
首先,肯定會繼續開源的。然後就是端的完善,生態和工具的完善也會持續進行。今年內計劃舉辦一個線下活動,邀請開發者來分享,同時也會邀請百度、頭條等官方團隊進行分享。同時,我們計劃對參與專案的外部開發者進行一些激勵,比如對貢獻非常大的開發者給予官方認證以及禮品等。除此之外,我們還會加強和小程式官方團隊的合作,舉辦沙龍或者比賽。比如前面提到我們會和騰訊雲聯合舉辦開發大賽,還有我們即將上線的物料平臺裡會專門給小程式雲開闢欄目,去鼓勵開發者探索更多可能性。

目前京東內部使用Taro的情況是怎麼樣的?
京東內部的使用當然是越來越多。因為Taro本身的影響力,越來越多業務方主動找過來切入到Taro的開發。其次就是和內部專門負責公司小程式能力規劃的部門進行深度合作,將Taro作為整個小程式生態推薦使用的框架。

您覺得國內的開源社群氛圍怎麼樣?
說實話,國內很多人對待開源的技術,都把它當成一種索取,但開源社群應該是大家共建、共享、互惠的一個平臺。

您如何看待國內會出現那麼多種小程式平臺的事情呢?
我覺得多種小程式平臺的出現對於開源框架來說是好事,同時能夠證明開發者的價值。從業務角度看,現在國內的流量都聚集在巨頭APP,如果一家企業要做一個新的APP,很難從巨頭APP裡分得流量。不過這些巨頭APP已經能夠提供類似小程式這樣的渠道讓其他企業或者商戶能夠分得一些流量,這是一件挺好的事。將來有越多的小程式平臺,就能給越多的開發者提供機會。

你們團隊平時除了負責Taro還要負責一線業務開發嗎?
我們團隊除了負責Taro的開發,也會做小程式和h5的一些業務,這兩方面是相輔相成的,不能完全脫離業務去做工具。

您覺得Vue和React誰會是未來的主流趨勢呢?
兩個都很優秀,主要根據開發者自己的意願選擇。

您覺得未來的前端技術會怎麼發展呢?
未來前端技術應該不再侷限於手機或電腦等單個裝置,而是物聯網的時代。像(IOT)之類的東西會慢慢增多。再之後的5G時代,很多物聯網裝置能夠更快執行起來,那麼肯定會在不同的場景滿足不同的體驗。比如VR、AR如果配合5G之後,它的體驗感以及互動方式可能都會發生改變,所以前端技術未來應該是無處不在。

有什麼想對點評家讀者說的嗎?
Taro目前仍是一個正在成長的框架,需要更多的開發者來提意見,甚至是共同為開源這件事情做出貢獻。我們非常歡迎廣大的開發者來完善Taro,幫助Taro更好的成長。
也希望大家能多關注點評家這個媒體,點評家還是個很優質的媒體。


相關文章