新時代的web與app開發

IT大咖說發表於2017-09-15
內容來源:2017年6月18日,淘寶終端技術團隊高階技術專家Winter在“2017 iWeb峰會·第六屆HTML5峰會 ”進行《新時代的web與app開發》演講分享。IT大咖說作為獨家視訊合作方,經主辦方和講者審閱授權釋出。
閱讀字數:2035 | 5分鐘閱讀

新時代的web與app開發

摘要

近幾年前端有著不小的變化,作為前端技術人員,一方面感慨有些自己熟知的技術逐步落幕消亡,另外一方面又看到新事物不斷出現,以種種方式改進和衝擊著我們的開發方式。生在這個時代是一種不幸,也是幸運。

嘉賓演講視訊連結:t.cn/RCYmeWv

回顧

2010年,有人說Web已死,引發了熱議。

2012年,大家想象html5什麼時候能打敗native。

2015年,我在舊金山第一次看到了React Native的demo,非常興奮。

2016年,我們自己的weex開源了。

到2017年,我所見的前端變化

2016年到2017年之間,前端的三個主要變化是技術變化、工程變化和職責變化。

技術變化主要是weex和React Native為代表的一批融合的技術,給我們的能力帶來了很大改變。

另一個值得關注的變化是工程變化。前端從簡單薄弱的一層,變成了一個非常重要的職能。

職責變化主要是指前棧的問題。我們曾經對前棧有過憧憬和暢想,而事實總是不盡如人意。其實現在職責的變化更加合理,並不比想象中的狀況差。

前端技術變化

Web和Native的優勢各有三點。

前端的優勢一是動態發版。動態發版要遵守使用者協議,使用者協議是不允許在Webview之外的地方執行Script,也就限制了Script只能是Javascript,因為Webview不支援別的指令碼。

第二個優勢是功能解耦,這一點很容易被大家忽略。隨著客戶端越做越大,它會變成非常依賴強力的架構師和強力的專案管理機制。這個要求對於很多小公司來說是致命的。前端就沒有這個問題,每個人寫各自的網頁,瀏覽器天然隔離,相互不受影響。

還有就是前端技術非常適合三方,三方就意味著不可能要求三方使用指定技術。html本來就是一個各公司妥協的結果,即使是蘋果的iOS這麼這麼強勢還是給它留了Webview這麼一條活路。

客戶端有三點非常直白的優勢就是體驗、裝置特性和效能。這都是前端技術目前達不到的。

前端工程技術變化

看了React Native之後,我們開始往這個方向去思考。我們需要的是一門真正可以在上面做開發的語言,答案是weex。

我們得到的就是前端的開發體驗和客戶端的使用者體驗。

開發體驗就是說其實整個工具棧全都是前端,但實際上渲染出的東西是weex。現在在我們淘寶的應用上,除了一些多年不變的基礎業務,幾乎所有業務都已經用前端來做了。

前端工程體系變化

以前我們要做一個網頁,前端負責開發,做出一個demo性質的前端頁面,然後做套模版。服務端把模版套好,和程式碼結合在一起,最後進行釋出。

之所以說前端特別薄弱,因為它沒有自己的釋出,只是一道工序,而不是一個工種。

另外套模版這件事非常繁瑣。我們在2013年的時候,大家一直在討論“前後端分離”,提出了各種各樣的技術來解決套模版這件事。

隨著手機淘寶在整個集團的比例上升,手機淘寶這個方案基本上取得了勝利,並且是前後端同構。

讓前端獨立去釋出,就是最終極的前後端分離方法。獨立釋出前端只能發html,服務端所有東西要API化。

現在我們的前端有一條自己的釋出線,開發、構建、聯調、釋出。服務端是在聯調環境參與進來的,拿它的API去做聯調,然後前端自己進行釋出。

這裡對於前端來說多了兩個環節,一個是構建。有了構建後想象空間非常大,之前前端就是Javascript,現在甚至引入了一些模版構建的技術,有一些外部的像unity也進來了。這樣做豐富了整個生態,也讓一些之前不是前端的人開始逐漸進入到前端的體系裡來。

另一個就是釋出環節。有了釋出就意味著前端開始關注線上的東西,隨之而來前端的工程體系,包括持續整合這樣的概念早09年、10年的時候對於前端來說是個不可思議的話題,到今天在一些大公司的前端圈子裡已經把這個話題當作非常自然的一件事了。

前端職責變化

還有一個更大的變化就是前端職責變化。我們曾對前棧有過一個想象,前端如果具備了服務端能力,我們會不會越做越“胖”,把服務端擠得只剩一小點了。但實際上如果這樣做會導致一個嚴重的問題,缺少前端。

後來我們在思路上發生了一個重大轉變,就是賦能。從“把自己做成全棧”變為“幫別人做成全棧”,降低服務端的人去做前端的成本。

另外當服務端把能力輸出給服務端的時候,服務端也會輸出能力給前端。前端輸出給服務端的能力就是元件體系和搭建體系。服務端輸出給前端的能力是對資料做一定的標準化和校驗。把不同前端的業務平臺化,在業務層面上是不一樣的,實際上是從同一個平臺出來,這樣前端也具有了一定的全棧能力。最後變成了一個“你中有我,我中有你”的狀態,大家又各自在負責自己擅長的部分。這是真正意義上的全棧最終在我們團隊落地產生的場景。

未來:前端技術雲化

我的理想是將來以前端為中心去開發應用開始成為一種可能。只需以前端技術為核心去構建一支團隊,它就可以獨立地開發一個應用。

“雲端配合”的概念可能會取代現在純粹雲服務的概念。

將來的前端不僅僅是現在已經在做前端的人,還包括了一些更廣泛的群體。比如被輸出了前端能力、被賦能的那些服務端的同學,以及做更底層的功能、給我們提供外掛能力的服務端同學,他們都會變成一個模糊的“大前端”概念。這是我認為未來前端的一個發展趨勢。

我今天的分享就到這裡,感謝聆聽!


相關文章