在上一篇文章中,我分析了大前端的趨勢,我建議原生程式設計師拿出3分精力來學習大前端技術。本文將進一步分析這一趨勢,並針對前端程式設計師(FE)給出一些建議。在此之前,先給大家介紹下大前端。
大前端技術的發展已經有一段歷史了,但是這個概念正式映入大家的眼簾是在2017年,當時以餓了麼為代表的一些企業開始提出大前端的概念。在2018年年中,InfoQ舉辦了首屆全球大前端技術大會(GMTC),在大會中將前後端分離、跨平臺和PWA等技術設立了專場,這次大會具有重要的意義,它預示了大前端時代的正式到來。
大前端到底是什麼呢?直接來說,大前端就是所有前端的統稱。在後端眼裡,最接近使用者的那一層都叫前端,比如Android、iOS、Web、Watch等。對企業來說,每上線一個新產品都需要開發幾個平臺的APP,這是一種資源浪費。從節約成本的角度來看,用一份人力來開發適用於多個平臺的APP,這才是最有價值的。總結來說,平臺、跨平臺技術以及周圍生態,它們共同組成了大前端。
下面開始闡述本人的觀點,我認為:前端程式設計師也要花3分精力學習下原生技術棧。
前端技術在經歷了前後端分離以後,從網際網路邁向了移動網際網路。現在除了淘寶京東之類的電商平臺還擁有大量的PC網站開發外,剩下的PC網站開發大部分都是做運營平臺,Web開發已經越來越向移動端靠攏了。
在網際網路時代,大家可以通過瀏覽器收藏夾和搜尋引擎來開啟各大企業的網頁,但是移動網際網路時代,網頁已經很難觸達使用者了,因為使用者在手機上缺乏搜尋的習慣,這也是百度在移動網際網路時代掉隊的原因。解決這個問題的方式就是手機APP,還有微信小程式,但是稍微大一點的公司都不會把微信小程式作為自己的主要入口,所以移動網際網路還是APP的時代。
在跨平臺方案上,最有潛力的依然是ReactNative(含Weex)和Flutter。Flutter現在才preview,而且其動態性方面有缺點,也沒法支援H5,在我眼裡,Flutter更像是一個未來的方案,而ReactNative則是目前的最優解,雖然它也有很多不足。
隨著大前端的發展,如果有朝一日ReactNative變得更完善,成為了各大公司的主流開發模式,那會出現什麼現象呢?毫無疑問,肯定要使用JavaScript進行業務開發,但是由於ReactNative本身的限制,它在複雜UI、長列表載入,原生能力的支援完整度上都還有不足,還有已有的第三方庫複用,這些都需要以原生的方式來支援。也就是說光靠JavaScript是完成不了的,還必須配上一定的原生程式設計師(Android和iOS)。
問題來了,這套技術棧提高了研發效率,那公司肯定要進行“人員優化”,淘汰掉不能適應新體系的程式設計師,節約人力成本,畢竟這才是企業擁抱大前端的本意。那大家猜一猜,哪些人會被淘汰掉呢?
肯定是不懂JavaScript的原生程式設計師和不懂原生的FE。
在大前端時代,三端已經融合了,Android、iOS和FE已經沒有那麼明顯的區分了,所以誰適應不了新形勢誰就會被淘汰。JavaScript本身有一定複雜度,但是ReactNative中的JavaScript只是子集,其門檻很低,原生程式設計師可以很快上手。那問題來了:如果前端程式設計師不懂原生,而原生程式設計師卻懂JavaScript,那作為領導,他會選擇裁掉哪類人呢?我相信大家都心裡有數。
所以,大前端時代其實是Android、iOS和FE的融合,並不是說FE替代原生,更不能說APP已死,要知道最終的APP是執行在Android和iPhone上面的。
我給大家的建議就是:
原生程式設計師學習JavaScript,FE學習原生技術
尤其是FE,千萬不能覺得自己只要坐享其成就好,一定要改變下自己的觀念,主動學習下原生技術和跨平臺技術。
我知道,本文的觀點或許有一些超前,因為本文不是一篇描寫現在的文章,而是一篇描寫未來的文章。但是我並不是亂說,這一切都是我觀察、學習和思考後做出的預測。我想說的是,當一個趨勢所有人都能看懂,你才能看懂那就晚了,只有在大部分人還看不懂的時候,你看懂了並且去做了,才能在趨勢到來後領先大部分人。你們認可我的觀點嗎?點贊,將本文分享給更多有需要的人吧。