我理解的前端發展方向


這是我個人的理解的前端2022年,甚至以后的前端發展的方向。這里沒有太多的干貨的知識,不會告訴你說Javascript怎么寫,也不會告訴某個頁面需要怎么排版……那都是一些很基礎的東西(但是並不能我的本篇文章和思考有多么的高大上),這些方向的了解可能會貫穿我們整個前端的職業生涯;也可能等你在前端這個行業中摸爬滾打了多年之后,你才在某個清晨恍然大悟,原來這么多年我都是個機器:把設計稿轉換成頁面,每天做着這樣重復但是看似有意思的工作。而我就是其中的后者。
先簡單的介紹一下為什么我會有這樣的想法吧。
我的前端經歷
我是2010年開始學的前端,其實那個時候也就是那個時候前端還不能算是前端,Html5 還未發布,我們用的瀏覽器也還是IE6到IE8,我們前端還是一個最底層的工作(確切來說叫切圖仔);那個時候CSS還是處於1.0到2.0時代(為了保證頁面不亂,我們喜歡用table進行布局);那個時候瀏覽器還不支持很多的類(不如說那個時候還沒又JSON對象,要想將字符串專程對象,就得用eval);那個時候我們用的工具還是網頁三劍客(可能現在的很多的前端小伙伴都不清楚網頁三劍客是什么東西,網頁三劍客:Dreamweaver, Firework, Flash)……就是在這樣的一個環境中,我開始接觸了前端。從第一個input框開始,到一個百度頁面,再到后來的后來,再到今天。我正兒八經開始做前端的工作是從2015年開始的。所以這中間經歷的很多的前端方面的時代的變遷。
從接開始前端方面的工作開始,從最初的P2P,到游戲,再到最后的2B的SAAS行業;從最初的JQuery時代,到后來的angualr1,再到后來的angular,vue,react三足鼎立框架的改變;從最初的grunt,gulp到webpack再到snowpack和vite等打包工具的變遷。就在這幾年的時間中發展迅速,但是不變的就是前端的主要使用的東西依舊是html,css,js。
個人前端發展方向
對於我的經驗來說,我理解的前端個人的發展方向未來會有以下幾個方向:
• 深入理解業務,站在技術的角度能夠提出更好的業務方面的改進,前端交互以及用戶體驗的發展(UED)
• 偏向於服務端的前端開發,說白了就是基於NodeJs來實現前后端的統一開發
• 偏向於工具類的開發,其實工具類就包含很多的東西了,比如說基於Node的rollup之類的,還有就是webpack,vite等相關的大包工具的開發
• 偏向於跨平台方案的解決方案的設計和開發,比如說uniapp,taro,flutter,RN等等。
• 基於瀏覽器的音視頻功能的開發
• 基於瀏覽器的圖形圖像類工具的開發,比如說在線PS,等等
• 基於WebGL,和canvas的游戲仿真,虛擬現實的開發。
前后端全棧開發方向
隨着NodeJs的發展,以及基於NodeJs的web服務端的框架的逐漸成熟,現在已經有很多企業都在使用NodeJs來作為服務端開發的解決方案了。這個時候的前端,其實就不僅僅是一個前端了,而是一個全棧開發工程師。我們前端會接觸到很多做后端的同學,這樣在跟他們溝通的過程中對與后端同學使用的技術以及開發的內容比較感興趣,於是乎就開始學習部分后端的語言,比如說go,比如說Java,python等可以用來寫服務的內容。漸漸的就逐步發展成為了一個全棧開發工程師。
那么對於一個全棧工程師來說,應該具備哪些方面的能力呢?
• 至少了解一門后端語言(不限於NodeJs,Python,Java,Go,C#),並且了解該語言所對應的服務端的開發框架。畢竟流行的語言,都會對應的有一個良好的開發框架:Node的express和koa,Python的Django,Java的Spring,Go的Zero,C#的.Net Mvc等等。只要了解了這寫東西,才能夠讓你在后端開發過程中游刃有余。
• 數據庫,緩存,消息隊列等等。數據庫是用來存儲用戶的數據的,常用的數據庫有MySql,Sqlserver,postgreQL這些關系行數據庫,還有一些非關系行的數據庫,比如說No-SQL,Redis等等,對於web后端還需要了解一些優化的方案,比如說使用緩存memerycach,消息隊列等等。
• 網絡及通信協議,網絡方面的內容我相信這都應該是一些很基礎的內容,尤其是針對一個web開發人員來說,了解網絡協議等內容,是我們必不可少的東西,常見的http通信和sokcet等;除了這些還有可能會涉及到進程見通信,管道,Rpc等等。
• 架構設計能力,這個能力其實對於全棧工程師是必不可少的東西,網站的設計如何,將直接會影響到用戶的體驗等等。
• 服務器運維能力,開發好的內容,就需要部署到對應的服務器上,給別人用起來,這樣才有價值。因此作為一個全棧,最起碼的搭建服務器環境,做最基本的項目部署迭代工作還是很重要的。
工具類的開發
這里所要講的工具類的開發涉及到很多個方面:
• 我們開發過程中的打包工具webpack,rollup,vite等等,
• 基於web的工具:vscode等
• 基於web的CAD等相關的工具,比如說在線PS,figma
• 在線辦公工具,比如說,金山文檔,draw.io等等
• ……
由於web的輕量和隨時隨地以及跨平台,以及目前瀏覽器越來越強大,以至於這樣的在線版的工具越來越多而且未來也會越來越多。在未來,很多桌面版的工具會被搬上瀏覽器,而對於前端來說,這些工具的開發過程中就涉及的都是功能也逐漸被前端化,因此,前端的在這些方面又可以進行大展拳腳了。
跨平台框架開發
說起誇平台開發,很多的前端開發者都能夠講出來一些,比如說cordova,ionic,react- native,weex,kotlin-native,flutter等跨平台的框架百花齊放。當然,對於目前,國內我們還有小程序,在用戶體驗方面,小程序有着天然的優勢,另外,小程序能夠提升用戶的粘性,因此各大廠商都在拼命的發展自己的小程序業務,我們常見的小程序有:微信小程序、QQ小程序、支付寶小程序、淘寶小程序、百度智能小程序、今日頭條小程序、抖音小程序、360小程序。當然,面對這么多的小程序平台,雖說有不少的相似的地方,但是同樣存在着不小的差異。因此對於我們我們前端來說不應該是每來一個平台就為其開發一套,因此,有不少的結局方案,比如說uniapp,taro等,解決方案。
對於我們前端來說如果僅僅是學會使用這些框架和解決方案,來完成企業的業務,發展來發展去,到最后,依舊是一個體力活。而這些,也正如上面所講到的那樣,絕對不是我們做前端的終點。因此,我們要做的就是其深層次的東西的研究。就是研究其底層進行跨平台編譯的原理和編譯思想。這樣所能夠接觸到的東西,以及這些東西所涉及的方面就會更加的深入。
在做這方面的研究過程中,能夠接觸到不同平台等網絡,渲染,運行語言等方面的只是,還能夠使我們更加深入的立即編程語言的魅力以及其編譯和運行的整個過程;另外還會了解的到虛擬機,操作系統,計算機體系結構,網絡等等多方面的底層的只是內容;另外對於渲染層面的內容,我們要了解的可不僅僅是瀏覽器的渲染原理(什么重排,重繪等等),更重要的是去實際思考我們的東西應該怎么去繪制,中間包含有計算機圖形學,圖像處理等多方面的內容……
因此如果在
音視頻方向
近幾年,國能的短視頻,在線視頻播放的不斷的增長和拓張;2020 年疫情爆發,直接促使了會議、教育等線上視頻產品的飛速成長;2021年1月26號WebRTC也正式的進入到了W3C的標准中,一時間基於Web的音視頻開發也被推到了風尖浪口。
未來基於Web的音視頻開發,絕對會成為稀缺,可能現在的很多人都覺得基於Web的音視頻開發,無非就是html5的video和audio的標簽么?其實基於Web的音視頻開發(WebRTC)主要有兩個方面:
一個是音視頻的播放方面
• 支持對流式視頻和音頻的解碼和顯示
• 能夠從網絡攝像頭中捕獲視頻和音頻流
• 對呼叫的協調協議(如信號處理)
• 高效的音頻和視頻的編碼及解碼器
• 處理回波消除、噪聲抑制、比特率適應(根據帶寬自適應的流)等諸多方面的算法。
一個是網絡傳輸方面
WebRTC通信方面的內部構造主要包含有下面的內容:
• 點對點通信
• 防火牆和 NAT 穿透
• 信令,會話及協議
• WebRTC 接口
這中間的每一個模塊都夠折騰很久了。然而這也僅僅只是一小部分的內容,未來WebRTC可能會涉及到的領域很多,比如說實時監控,網絡雲游戲,以及雲電腦等等。但是在前端這塊,其實基於瀏覽器去做音視頻方面的內容的開發,還是面臨和很大的挑戰的。因子未來前端同學如果感興趣的話,可以在音視頻方面進行較深入的研究。
數據可視化方向
有人說數據可視化不就是圖表么,不就是調用echarts等圖表插件把數據從冰冷的數字轉換成圖形,頂多就是色彩豐富一些,做一些特效什么的,看起來更酷炫,逼格滿滿,寫老板在寫PPT的時候顯得更好看一些。
其實不然,一個好的可視化,能夠帶給人們不僅僅是視覺上的沖擊,還能夠揭示蘊含在數據中的規律和道理。常見的數據可視化的使用場景有以下幾點:
• 工業數字化中台,監控台,園區設備等場景
• 智能家居的進一步發展,3D雲看房,遠程操控台等場景
• NoCode下的3D模型,拖拽式的倉儲管理系統等場景
• 智能機器人,Iot物聯網場景
• AR,VR、元宇宙.....
可見我們數據可視化未來的發展以及使用的場景該是有多么的有前途。
游戲方向
從最早的flash頁游,到現在,前端推出了Canvas以及WebGL,以及目前前段游戲引擎的不斷的崛起:Egret、laya、pixi、three.js,通信協議有websocket和http等等,而且再加上現在的瀏覽器基本上都開始不斷的放棄flash,因此,基於H5的游戲,也越來越流行了。而且現在很多的平台也都開始在搞游戲化的宣傳,視圖通過游戲來增加大家的用戶粘性:比如說支付寶的,螞蟻森林,螞蟻庄園等等,甚至還有一些會通過一些小游戲來進行做一些宣傳。
不僅僅如此,就連元宇宙其實也是很游戲有關的,當游戲遇上了VR遇上了AR在遇上了Web,我相信這些東西所能夠帶來更多的新穎的東西。曾經我們在晚上賣東西或者是賣東西,都是漸漸的跟這些東西的進行了結合。

前端的技術研究方向
對於很多的有理想,有抱負的前端開發人員來說,為了支撐這些技術的發展方向,我們需要在哪些技術方面進行提升自己呢。我大致總結了以下幾個方面:
• 計算機圖形學
• 圖形圖像和音視頻
• 計算機網絡
• WebAssembly
當然這些內容其實看起來更多的是跳出了我們平時經常接觸的前端的三大主流內容,但是這些才是我們身為一個手藝人才應該將更多的精力投入進去,來充實自己,讓自己具備有更多的戰斗力,讓我們能夠在前端這條路上面走的更遠。
小結
未來的瀏覽器會越來越強大,而前端的在整個技術領域中的划分,也將變得越來越重要,而我們身為前端開發人員,要與時俱進,不斷的提升自己,來讓自己具備更強的市場競爭力,以及用我們自身的技術手藝來帶來更加巨大的社會價值。我也希望,更多前端小伙伴不再擁有35歲的焦慮。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM