Web開發(fā)者需要學(xué)習(xí)的15大技術(shù)你值得觀看
2019-09-03
將近4年前,我寫了一篇名為《Future of Web and Mobile: HTML5, CSS3 and Javascript》的博客文章,其中我提到了Javascript的出現(xiàn),以及JavaScript框架,例如jQuery、Knockout等的爆發(fā)。
快進到現(xiàn)在,我發(fā)現(xiàn)現(xiàn)代web開發(fā)再一次將發(fā)生壓倒性的改變。信息資訊的鋪天蓋地令人迷惑,尤其對于初學(xué)者而言。首要原因是新的框架,例如Angular 2和ReactJs出現(xiàn)了,使用了尚未完全定型的ECMAScript 6特性。并且有更多的工具可用于轉(zhuǎn)換ES6代碼為普通的舊的JavaScript代碼,也就是ES5。
我概括了一系列我們應(yīng)該學(xué)習(xí)的編程語言/工具,以便于理解勢不可擋和快速變化的現(xiàn)代web開發(fā)。
JavaScript
這是唯一一種所有瀏覽器都理解的編程語言,并且它是前端開發(fā)的支柱。JavaScript也被稱為ECMAScript,ES 5。在深入其他語言之前好好理解這門編程語言非常重要。
ES6
這是Javascript語言的擴展,而且許多瀏覽器正在實現(xiàn)ES6。好處是哪怕是現(xiàn)在,你也可以開始編寫ES6代碼,因為你可以使用transpiler(轉(zhuǎn)譯器)如Babel來轉(zhuǎn)換ES6代碼為ES5代碼。經(jīng)歷這些并了解新功能是一件好事。不過,沒有不要鉆研得太深因為它們很容易發(fā)生變化。
Babel
這是最流行的ES6到ES5轉(zhuǎn)譯器之一。此外,它還被許多框架,如React所推薦。要想實時地將ES6轉(zhuǎn)換為ES5代碼,在https://babeljs.io/repl/有一個可用的REPL。
需要注意的是Babel不僅僅是ES6到ES5的轉(zhuǎn)譯器。它也是JSX到JavaScript的轉(zhuǎn)譯器。不知道什么是JSX?那么請看下面。
NodeJS
NodeJS是一個服務(wù)器端平臺,它允許你用JavaScript語言構(gòu)建后端。為什么我要提NodeJS呢?這是因為,即使你對后端開發(fā)不感興趣,但是許多前端工具依賴于NodeJS。至少要熟悉node和它的命令行工具。
NPM
NPM是node的軟件包管理器。就像pip之于Python,ruby gems之于Ruby,以及Maven之于Java。了解如何安裝/刪除/升級軟件包,尤其是package.json文件結(jié)構(gòu)。
Grunt或Gulp
這兩個是運行在Node平臺上最為流行的任務(wù)運行器。從技術(shù)上講,它們是針對npm的軟件包。它們允許你自動化許多前端任務(wù),如Lint源文件,串聯(lián),縮減,部署以及更多。
Bower
這是用于前端庫本身的一個軟件包管理工具。想添加Jquery到你的應(yīng)用程序?和使用bower install jquery一樣容易。
上述工具用于基本的前端開發(fā)已經(jīng)足夠。不過下面我還要說一說兩個最流行的框架,即React和Angular。
ReactJs
ReactJs是構(gòu)建視圖最流行的前端庫。請注意,它不僅僅是MVC中的V,因此和框架如Angular沒有比較性。ReactJs是用ES6寫的,并且可以用Babel轉(zhuǎn)譯為ES5。它還使用也可以用Babel轉(zhuǎn)譯為JavaScript的JSX。
WebPack或Browserify
這兩個都是最流行的模塊打包機。它們可以獲取js源代碼,找出正確的依賴關(guān)系,并發(fā)出可以驅(qū)動整個應(yīng)用程序的JavaScript文件。我更喜歡WebPack。點此查看關(guān)于WebPack。
Flux或Redux
React組件被布置在一個層次結(jié)構(gòu)中。大部分時間,數(shù)據(jù)模型遵循層次結(jié)構(gòu)。在這種情況下,F(xiàn)lux并不怎么有用。然而,有時候你的數(shù)據(jù)模型是不分層的。當你的React組件開始接收外部道具,或你有少量的組件開始變得非常復(fù)雜的時候,那么你可能會想要試試Flux。
Immutable.js
Immutable.js提供了一套數(shù)據(jù)結(jié)構(gòu),可以幫助解決在構(gòu)建React app時的某些性能問題。這是一個偉大的庫,你可能會在你的app中大量使用它,但是當你關(guān)注于性能影響時,它就完全沒用了。
Angular 2
Angular 2是JavaScript中最流行的MVC框架之一的下一個版本。它被完全重新設(shè)計過了,并且有一條陡峭的學(xué)習(xí)曲線。全面支持雙向數(shù)據(jù)綁定。在選擇Angular 2開發(fā)時要小心評估。
TypeScript
Angular 2推薦TypeScript作為編程語言的首選。我不是很熟悉TypeScript,但我認為它增加了靜態(tài)類型到Javascript的動態(tài)特性中。最后,我相信它只是一個轉(zhuǎn)譯器。
Service workers
實驗性的API。它就像是在瀏覽器用于做各種工作的一個后臺線程。我想它也增加對離線瀏覽的支持。
Fetch API和Push API