內容來源:2017年6月18日,淘寶終端技術團隊高級技術專家Winter在「2017 iWeb峯會·第六屆HTML5峯會 」進行《新時代的web與app開發》演講分享。IT大咖說做爲獨家視頻合做方,經主辦方和講者審閱受權發佈。
閱讀字數:2035 | 5分鐘閱讀
近幾年前端有着不小的變化,做爲前端技術人員,一方面感慨有些本身熟知的技術逐步落幕消亡,另一方面又看到新事物不斷出現,以種種方式改進和衝擊着咱們的開發方式。生在這個時代是一種不幸,也是幸運。html
嘉賓演講視頻連接:t.cn/RCYmeWv前端
2010年,有人說Web已死,引起了熱議。html5
2012年,你們想象html5何時能戰勝native。web
2015年,我在舊金山第一次看到了React Native的demo,很是興奮。後端
2016年,咱們本身的weex開源了。瀏覽器
2016年到2017年之間,前端的三個主要變化是技術變化、工程變化和職責變化。weex
技術變化主要是weex和React Native爲表明的一批融合的技術,給咱們的能力帶來了很大改變。架構
另外一個值得關注的變化是工程變化。前端從簡單薄弱的一層,變成了一個很是重要的職能。app
職責變化主要是指前棧的問題。咱們曾經對前棧有過憧憬和暢想,而事實老是不盡如人意。其實如今職責的變化更加合理,並不比想象中的情況差。前後端分離
Web和Native的優點各有三點。
前端的優點一是動態發版。動態發版要遵照用戶協議,用戶協議是不容許在Webview以外的地方執行Script,也就限制了Script只能是Javascript,由於Webview不支持別的腳本。
第二個優點是功能解耦,這一點很容易被你們忽略。隨着客戶端越作越大,它會變成很是依賴強力的架構師和強力的項目管理機制。這個要求對於不少小公司來講是致命的。前端就沒有這個問題,每一個人寫各自的網頁,瀏覽器自然隔離,相互不受影響。
還有就是前端技術很是適合三方,三方就意味着不可能要求三方使用指定技術。html原本就是一個各公司妥協的結果,即便是蘋果的iOS這麼這麼強勢仍是給它留了Webview這麼一條活路。
客戶端有三點很是直白的優點就是體驗、設備特性和性能。這都是前端技術目前達不到的。
看了React Native以後,咱們開始往這個方向去思考。咱們須要的是一門真正能夠在上面作開發的語言,答案是weex。
咱們獲得的就是前端的開發體驗和客戶端的用戶體驗。
開發體驗就是說其實整個工具棧全都是前端,但實際上渲染出的東西是weex。如今在咱們淘寶的應用上,除了一些多年不變的基礎業務,幾乎全部業務都已經用前端來作了。
之前咱們要作一個網頁,前端負責開發,作出一個demo性質的前端頁面,而後作套模版。服務端把模版套好,和代碼結合在一塊兒,最後進行發佈。
之因此說前端特別薄弱,由於它沒有本身的發佈,只是一道工序,而不是一個工種。
另外套模版這件事很是繁瑣。咱們在2013年的時候,你們一直在討論「先後端分離」,提出了各類各樣的技術來解決套模版這件事。
隨着手機淘寶在整個集團的比例上升,手機淘寶這個方案基本上取得了勝利,而且是先後端同構。
讓前端獨立去發佈,就是最終極的先後端分離方法。獨立發佈前端只能發html,服務端全部東西要API化。
如今咱們的前端有一條本身的發佈線,開發、構建、聯調、發佈。服務端是在聯調環境參與進來的,拿它的API去作聯調,而後前端本身進行發佈。
這裏對於前端來講多了兩個環節,一個是構建。有了構建後想象空間很是大,以前前端就是Javascript,如今甚至引入了一些模版構建的技術,有一些外部的像unity也進來了。這樣作豐富了整個生態,也讓一些以前不是前端的人開始逐漸進入到前端的體系裏來。
另外一個就是發佈環節。有了發佈就意味着前端開始關注線上的東西,隨之而來前端的工程體系,包括持續集成這樣的概念早09年、10年的時候對於前端來講是個難以想象的話題,到今天在一些大公司的前端圈子裏已經把這個話題看成很是天然的一件事了。
還有一個更大的變化就是前端職責變化。咱們曾對前棧有過一個想象,前端若是具有了服務端能力,咱們會不會越作越「胖」,把服務端擠得只剩一小點了。但實際上若是這樣作會致使一個嚴重的問題,缺乏前端。
後來咱們在思路上發生了一個重大轉變,就是賦能。從「把本身作成全棧」變爲「幫別人作成全棧」,下降服務端的人去作前端的成本。
另外當服務端把能力輸出給服務端的時候,服務端也會輸出能力給前端。前端輸出給服務端的能力就是組件體系和搭建體系。服務端輸出給前端的能力是對數據作必定的標準化和校驗。把不一樣前端的業務平臺化,在業務層面上是不同的,其實是從同一個平臺出來,這樣前端也具備了必定的全棧能力。最後變成了一個「你中有我,我中有你」的狀態,你們又各自在負責本身擅長的部分。這是真正意義上的全棧最終在咱們團隊落地產生的場景。
個人理想是未來之前端爲中心去開發應用開始成爲一種可能。只需之前端技術爲核心去構建一支團隊,它就能夠獨立地開發一個應用。
「雲端配合」的概念可能會取代如今純粹雲服務的概念。
未來的前端不只僅是如今已經在作前端的人,還包括了一些更普遍的羣體。好比被輸出了前端能力、被賦能的那些服務端的同窗,以及作更底層的功能、給咱們提供插件能力的服務端同窗,他們都會變成一個模糊的「大前端」概念。這是我認爲將來前端的一個發展趨勢。
我今天的分享就到這裏,感謝聆聽!