文章翻譯:張?jiān)?/a>
發(fā)表時(shí)間:2015 年 7 月 01 日
原文作者:MARIO CASCIARO
文章分類:web 開(kāi)發(fā)
什么是當(dāng)下最流行的 Web 開(kāi)發(fā)技術(shù)?作為一個(gè) Web 開(kāi)發(fā)者需要具備哪些技能?Web 開(kāi)發(fā)未來(lái)發(fā)展如何?本文作者 MARIO CASCIARO 將一一為你闡釋。
MARIO CASCIARO 是一位軟件工程師,同時(shí)也是一位對(duì)開(kāi)放源碼充滿熱情的技術(shù)領(lǐng)導(dǎo)者,在他近期成功出版 《Node.js Design Patterns》 這本書(shū)之后,我們聯(lián)系到他,討論了他對(duì)當(dāng)今 Web 開(kāi)發(fā)最重要的技術(shù)和其未來(lái)的看法。
我曾參與一個(gè)小的輔助項(xiàng)目,當(dāng)時(shí)我盡可能地把新的技能付諸實(shí)踐,并嘗試一些工作職責(zé)以外的事。那是一個(gè)類似于一個(gè)社交網(wǎng)絡(luò)的 Web 應(yīng)用程序,我選擇了基于 Java 的 Spring 框架作為主要技術(shù)堆棧和前段的骨架。大約 4 年前,作為一個(gè) Java 高級(jí)開(kāi)發(fā)人員,我認(rèn)為 Java 是最有潛力的技術(shù)。它近乎完美地實(shí)現(xiàn)了企業(yè) Web 應(yīng)用以及核心任務(wù)的分布式應(yīng)用甚至移動(dòng)應(yīng)用。直到 2015 年,Java 仍然是最受歡迎而且有價(jià)值的技術(shù),但是,在做這個(gè)項(xiàng)目的過(guò)程中,我改變了自己的觀點(diǎn)——除非特別需要我不會(huì)使用它。
我記得在某個(gè)時(shí)刻,我意識(shí)到我花了很多開(kāi)發(fā)時(shí)間來(lái)設(shè)計(jì)應(yīng)用程序的面向?qū)ο蟮慕Y(jié)構(gòu)和編寫(xiě)樣板代碼。為了尋找一個(gè)解決方案,我將項(xiàng)目遷移到 Groovy 和 Grails 上,并試圖將一個(gè)小的自己編寫(xiě)的雙向綁定框架應(yīng)用于前端。雖然情況有一點(diǎn)改善,但我依然覺(jué)得需要一種在前后端都更加敏捷的技術(shù),這種技術(shù)更加適合 Web 開(kāi)發(fā)。
我嘗試用一種從根本上在服務(wù)端不同于 PHP、Ruby on Rails、Python,或在客戶端不同于 JQuery 或骨架的技術(shù)。幸運(yùn)的是,我發(fā)現(xiàn)了 Node.js 和 Angular.js,通過(guò)使用 Node,我發(fā)現(xiàn)我的心態(tài)從“如何做事”轉(zhuǎn)變?yōu)椤鞍咽虑楦愣ā薄A硪环矫?,Angular 徹底改變了我的前端開(kāi)發(fā)的方法,它大大減少了我之前使用的樣板代碼。但最重要的是,我意識(shí)到 JavaScript 和它的生態(tài)系統(tǒng)正在成為一個(gè)重要的事情。
現(xiàn)在我根本不會(huì)考慮構(gòu)建一個(gè) Web 應(yīng)用而不將 JavaScript 作為我的首選。npm 上數(shù)量驚人程序包表明 Web 已經(jīng)轉(zhuǎn)向 JavaScript。
在這件事中,令我印象最為深刻的是,我意識(shí)到這些新技能對(duì)定義我的職業(yè)生涯的重要性;如果我想構(gòu)建 Web 應(yīng)用,JavaScript 及其令人驚嘆的生態(tài)系統(tǒng)已經(jīng)成為我努力學(xué)習(xí)的重點(diǎn)。在我負(fù)責(zé)創(chuàng)建的項(xiàng)目中,這將促使 Node,Angular 以及其它前沿的 JavaScript 技術(shù)對(duì)項(xiàng)目的成功起到至關(guān)重要的作用。
使我對(duì) JavaScript 的興趣達(dá)到高潮的是我在6個(gè)月前出版的一本書(shū)—Node.jsDesignPatterns—這本書(shū)包含了我投入 JavaScript 以來(lái)積累的寶貴經(jīng)驗(yàn)。
如果我不得不給 Web 開(kāi)發(fā)初學(xué)者一些建議的話,我絕對(duì)推薦從學(xué)習(xí) JavaScript 開(kāi)始。5-6 年前我不敢這么說(shuō),但今天它是讓你同時(shí)能從前端和后端開(kāi)始學(xué)習(xí)的唯一語(yǔ)言。此外,JavaScript 和 HTML、CSS 等其它 Web 技術(shù)的組合,如 nw.js 和 ApacheCordova, 可以令你獲得更廣泛的應(yīng)用程序。
PHP,Ruby 以及 Python 仍然是非常流行的開(kāi)發(fā) Web 應(yīng)用服務(wù)端的語(yǔ)言,但對(duì)于已經(jīng)了解 JavaScript 的人來(lái)說(shuō),Node.js 才是更加自然的選擇。它不僅可以節(jié)省你學(xué)習(xí)一種新的語(yǔ)言的時(shí)間,還提供了一個(gè)集成的前端,這在其它平臺(tái)是不可能實(shí)現(xiàn)的。也就是說(shuō),在服務(wù)器和客戶端之間共享代碼甚至實(shí)現(xiàn)可以同時(shí)在 Node.js 和瀏覽器上運(yùn)行的同構(gòu)應(yīng)用。React是一種框架,在同構(gòu)應(yīng)用開(kāi)發(fā)領(lǐng)域中,它提供了一些十分有趣的和絕對(duì)值得挖掘的功能,與此同時(shí),我們也可以看到更多的來(lái)自 PouchDB 的功能,PouchDB 是一種同構(gòu)的 JavaScript 數(shù)據(jù)庫(kù),它將幫助開(kāi)發(fā)人員比以往任何時(shí)候更容易地構(gòu)建離線啟用甚至線下先行的 Web 應(yīng)用。
今天,正如 4 年前一樣,JavaScript 在 Web 開(kāi)發(fā)中已經(jīng)產(chǎn)生了影響,未來(lái)還將發(fā)揮重要作用。
例如 WebRTC 可以在瀏覽器中創(chuàng)建實(shí)時(shí)的點(diǎn)對(duì)點(diǎn)的應(yīng)用程序,而不需要任何附加插件。開(kāi)發(fā)者已經(jīng)用它來(lái)建立快速、輕量級(jí)的視頻/音頻會(huì)議應(yīng)用甚至在瀏覽器中創(chuàng)建完整的 BitTorrent 客戶端!
另一個(gè)革命性的技術(shù)是 ServiceWorkers,它將大大提高離線應(yīng)用的能力。WebComponents 將在前端發(fā)揮巨大的作用,Polymer 項(xiàng)目已經(jīng)證明這套新的標(biāo)準(zhǔn)創(chuàng)造的好處。
關(guān)于 JavaScript 本身,Web 開(kāi)發(fā)人員必須快速熟悉 ES6 標(biāo)準(zhǔn),因?yàn)榻徊婢幾g工具如 Babel 已經(jīng)允許我們?cè)趲缀跞魏纹脚_(tái)使用 ES6。但是我們也應(yīng)該留意 ES7,因?yàn)樗鼘?jiǎn)化異步編程這一非常有用的功能。
最后,隨著瀏覽器逐漸成為未來(lái)的運(yùn)行環(huán)境,最近發(fā)布的 WebAssembly 承諾給 Web 創(chuàng)造自身的“字節(jié)碼”,這可以使你在 JavaScript 中加載其它語(yǔ)言寫(xiě)的代碼,當(dāng) WebAssembly 廣泛使用時(shí),在瀏覽器中看到復(fù)雜的 3D 視頻游戲或運(yùn)行功能齊全的視頻編輯器將變得非常普遍。JavaScript 將仍然是主流 Web 語(yǔ)言,但它將輔之以 WebAssembly 提出的新的可能性。
Mario 的書(shū)作為我們的 Skill Up 打包技能的一部分,5 本電子書(shū)只需 25 美元。
在6月期間,我們調(diào)查了超過(guò) 20000 名 IT 專業(yè)人士,了解到他們目前正在使用的技術(shù)以及計(jì)劃在未來(lái) 12 個(gè)月內(nèi)將要學(xué)習(xí)的技術(shù),具體詳情請(qǐng)參閱我們的 Web 開(kāi)發(fā)技能工資報(bào)告。
更多IT技術(shù)干貨: wiki.jikexueyuan.com
加入極客星球翻譯團(tuán)隊(duì): http://wiki.jikexueyuan.com/project/wiki-editors-guidelines/translators.html版權(quán)聲明:
本譯文僅用于學(xué)習(xí)和交流目的。非商業(yè)轉(zhuǎn)載請(qǐng)注明譯者、出處,并保留文章在極客學(xué)院的完整鏈接
商業(yè)合作請(qǐng)聯(lián)系 wiki@jikexueyuan.com
原文地址:https://www.packtpub.com/books/content/today-you-are-not-web-developer-if-you-don%E2%80%99t-know-javascript-and-its-ecosystem