每一個前端都是一個墜入凡塵的折翼天使,他們既有著嚴謹的邏輯思維,可以用密密麻麻的二進制代碼,實現各種復雜的功能;他們也具備高超的審美能力和藝術天賦,對細節之美有著近乎瘋狂偏執的要求,對用戶體驗敏感到不能差一絲分毫。他們是在用彈鋼琴的手,用畫畫的手,用藝術家的手,運指如飛地舞動在冰冷的鍵盤上,編織著能夠愉悅眾生,變化萬千的美妙界面。
前端是一個值得尊重,值得驕傲的職業,與所有前端共勉 。前端又是一個特別的職業,特別之處在于它的技術迭代非常快,一天一個樣,一天一個新技術出現,一天一個框架,一天一個輪子。
你需要不停的學習,三天不學習就感覺落伍了,兩個月不學習,整個技術體系完全變了個樣。比如剛學會了用angular1做了個項目,angular2就出來,和1.x完全兩回事,剛準備學angular2,react出來了,react掌握了,Vue又火了,學了Vue,reactnative風頭正經,reactnative項目上線了,weex又要追上來了。剛掌握了es5,es6火了,和es5差別還蠻大,es6學了一半,es7又來了,webpack熟悉了,rollup席卷而來,grunt還在途中,就被拋棄轉投gulp有沒有?
不像后端,技術更新不頻繁,相對比較穩定,可能幾年才有一次大的變化。男孩,你是不是入錯了行?
既然前端技術不斷變化,那我們唯有不斷學習,才能跟上腳步,要知道落后是要被淘汰的。那么2017到底有哪些主流技術需要我們跟進掌握呢?知道了要學習哪些技術,我們才不會迷茫,不會焦慮,就像在奪寶的途中有了藏寶圖一樣。
1.javacript語言標準esmascript
前端中最有技術含量的應該就是javascript了,一個前端和一個低級前端的差距就在這里了,js是前端中最重要也是最基礎的技術,是一個合格前端必須要掌握的編程技能,那么現階段來看,es7已經被支持了,es5的所有知識肯定是要掌握的,es6也是必須要掌握的,現在的很多大公司已經全面使用es6的語法來編寫js程序了,es6中比較常用的語法是 let/const ,變量的解構賦值,箭頭函數,promise異步對象,import/export 模塊加載等,需要熟練掌握,推薦學習文檔http://es6.ruanyifeng.com和https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference.
es7因為內容較少只有async/await異步解決方案,最好也能了解和掌握
2.framework前端流行框架
學完了基礎,就好比練就了內功,現在需要學習一些高階的框架了,框架讓開發變得簡單,也提高了效率,2017年jQuery+bootstrap肯定是過時了,一大波MVC,mvvm框架來襲。代表是Vuejs和reactjs,都可以簡單快速的開發前端視圖層,區別是react偏向于組件化編程和jsx混合式編程。大型單頁前端應用的數據層適合用flux進行各個組件狀態統一管理,那么前端技術棧就是vuejs+vue-router+vuex ,而react的前端來說就是:reactjs+redux。我們公司的幾個項目現在主要是用vuejs+reactnative,所以我們自己實現了一個底層的flux層 ,然后又集合了vuex和redux的特點,寫出了兩個插件適配,就構成整個的flux+vuejs/reactnative 的前端架構方案。
3.模塊化
隨著項目越來越大,功能越來越復雜,參與的開發者越來越多,維護的成本是呈指數級的上升,代碼模塊化是必然的選擇,而且通過異步加載代碼,按需加載,降低了網絡傳輸帶寬,加快了頁面響應,也能在一定程度上提升了網頁性能。首先需要的就是包管理package manage,常見的必須掌握的就是npm,bower等,引入package時遵循commonjs語法,commonjs語法需要掌握。隨著es6的流行,es6的module加載和導出也大行其道,import和export也必須掌握。按功能劃分模塊后,根據模塊分成一個個文件,最后要說的是模塊加載器module loader,可以有效解決文件各模塊代碼沖突和依賴。目前業界有兩種主流的模塊加載規范,cmd(通用模塊定義)和AMD(異步模塊定義),區別在于是否是延遲按需加載。AMD的實現是requireJs,cmd的實現是seaJs,seaJs崇尚懶加載,即as lazy as possible,seajs在國內用的比較多。
4.打包構建工具
代碼最終要測試上線,要發布到生產環境,就需要一套自動化打包,測試構建工具,構建工具一開始就是grunt,現在已經過時了,因為后來的管道流式的gulp出現了,迅速席卷了整個業界,現在也是主流的首選構建工具,當然也要配合編譯打包工具,曾經最流行的預編譯打包工具就是webpack,不過近期出現的rollup以及簡單和打包后體積小的優勢,迅速在業界蔓延,似有取webpack而代之的趨勢。隨著es6的普及,帶火了一個編譯工具babel,用于讓不支持es6語法的環境將es6轉為es5運行。所以構建發布必須要掌握的工具是:webpack,rollup,gulp,babel
5.html5
這幾年來html5成為前端的標準登上了主流的舞臺,如果一個前端還沒html5的常見技術的,真的是要面壁思過了。常見的有html語義化,CSS3,webfont,flex布局。js方面就是本地存儲,canvas,websocket等。另外隨著瀏覽器給web賦能的增強,web開發者也能實現原本只有客戶端軟件才能實現的功能,比如說這兩年直播的火爆,瀏覽器在web端也開始提供實時音頻,實時視頻傳輸的接口。這樣基于瀏覽器,網頁就可以輕松實現在線直播,實時語音對話,實時在線聊天。這就是webrtc技術,是要做直播的前端必須掌握的技術點。
6.nodejs
nodejs的出現讓前端工程師利用js也能開發服務端了。能做的事更多了,全棧工程師變得觸手可及,大前端也成了不可逆的趨勢。而且前端學會了nodejs,原本需要后端參與的相對簡單的功能,自己就可以搞定,減少了溝通和聯調成本,大大提升了開發效率。所以作為一個不斷學習不斷成長的前端,你也需要掌握nodejs,需要掌握它的基本API,文件操作,請求處理等。其中koa和express是最流行的nodejs開發框架,學習成本低,大大簡化了開發流程,實乃nodejs必備利器。
前端的技能樹還是非常大的,而且枝繁葉茂,細節非常多。但是2017主流的技術點就是上面6大點,一旦熟練掌握,相信我,你一定收到無數的offer...