《JavaScript快速全棧開發》做者Azat Mardanov:如今是擁抱Node技術棧的最佳時機

非商業轉載請註明做譯者、出處,並保留本文的原始連接:http://www.ituring.com.cn/article/195742javascript

Azat Mardanov是一位有着12年開發經驗的資深軟件工程師,他曾涉足web、移動、軟件開發領域。他著有9本JavaScript和Node.js技術領域相關書籍,其中的Express.js Guide, Practical Node.js,以及《JavaScript快速全棧開發》在 Amazon.com專業類別中成爲了#1的暢銷書。做爲技術做者,其我的博客webAppLog.com一度成爲谷歌搜索「express.js tutorial」結果中排名第一的教程站點。前端

Azat如今在DocuSign任高級工程師,他利用由Node.js, Express.js, Backbone.js, CoffeeScript, Jade, Stylus以及Redis組成的技術棧,帶領團隊重構了具備5000萬用戶的DocuSign。Azat仍是科技聚會和編程馬拉松活動的常客,他曾和FashionMetric.com團隊一塊兒在AngelHack活動上12次入圍決賽。長期以來,他都是General Assembly、Hack Reactor、pariSOMA和Marakana等機構的講師,其技術課程得到一致好評。另外,他還開發了不少Node.js開源項目(如ExpressWorks、mongoui以及HackHall等)。java

圖片描述

問:Io.js另起爐竈,這將對Node形成什麼影響?Io.js和Node分別具備什麼優點?node

在我看來,Joyent公司構建的Node須要加一把力了。他們須要縮短髮布週期提升速度。他們也須要吸引新的代碼貢獻者。換句話說,爲了提升總體軌跡和速度,Node必需要有所改變。程序員

Io.js之因此被創造出來,主要是由於Joyent版Node決策過於緩慢。就目前來講,Io.js更加前沿,貢獻者更多,發佈週期也更短。Io.js已經到了版本1.6.2而Node仍然處在0.12.1版。web

固然,版本號並非成熟度的絕對指標。由於有一些項目可能只是提交了幾個小補丁就躍進了主要版本號。數據庫

問:Node.js陣營的分裂你以爲會是一件好事嗎?(早期硅谷很多成功的公司都是仙童公司分裂出去的。)express

我認爲分裂是一件好事。咱們擁有的優秀分支越多,這些分支就會變得越好。可能這個例子不太合適,可是看看Linux的各類發行版:Debian,Fedora,openSUSE,Red Hat,Ubuntu等等。這些版本幫助傳播了Linux基礎的系統,彼此間的競爭也讓它們越變越強。編程

但我並非100%同意這個論調。我更願意集中精力在我本身的項目上,我建議你們遠離政治和鬧劇。由於只有時間能告訴咱們將來會發生什麼。分裂也多是一件壞事,若是Io.js表現平庸的話,有可能會把人們從
Node/Io.js陣營趕走。後端

可是,若是讓我預測的話,我認爲將來是很光明的,而如今就是擁抱Node/Io.js/JavaScript技術棧的最佳時機。

問:PayPal從Java遷移到Node很是成功。你認爲Node會在後端取代Java嗎?

是的。Node已經在取代Java了。

大多數Java應用都是很龐大的,因此不少公司把他們的巨型應用拆分紅用Node實現的小型web服務。其餘一些公司把Node用到前端層,這層的做用至關於Java或.NET的老API之間的中間人,優勢是易於迭代(縮短的發佈週期),易於構建(一種語言),並且更好擴展(應用更快)。

我推薦你們閱讀這篇名爲Monolithic Node.js的文章。

另外,企業和大公司須要的技術,其背後必須有一些聲譽好的公司和工具。StrongLoop正在幫助大公司使用Node.js/Io.js。

初創企業已經愛上了Node/Io,由於便宜,可擴展,並且也更容易僱到程序員。

問:看起來Node.js比Python的框架Twisted火不少,爲何會這樣?對於後端來講,Node.js和Python各有什麼優缺點?

我並非Python及其框架方面的專家。可是我從其餘人那裏聽來的結果是這樣:當你編寫非阻塞的I/O代碼時,Python的框架Twisted更加複雜。由於Python並非從一開始就設計成非阻塞平臺的。而Node從一開始就是爲非阻塞和異步類型的代碼和架構而設計的。

Node在NPM(Node包管理器)中的模塊比Python多。Python標準庫比Node更豐富。Python對於JavaScript開發者來講更難學,同時Node對於JavaScript開發者和前端開發者來講更容易學。

Python的結構很嚴謹,空格和縮進都是語言的一部分。

問:Node.JS+NoSQL的方式衍生出了不少便捷的工具讓開發者可以快速響應前端需求,特別是像Parse這類的工具。你以爲在整個敏捷創新的過程當中,將來在哪些方面可能會有更多這樣的創新?

作預測很難,可是我認爲移動開發會變得更加容易。只要看看Ionic和Swift就知道了!

在桌面端,我認爲編程會更加聚焦在前端,好比Twitter Bootstrap,LESS這樣的框架,並且相似Webflow,WordPress這樣的服務會變得愈來愈流行。

後端所須要的編碼愈來愈少。Node/Io/JS會一直籠絡新生代後端開發者的心,同時也會佔據PHP,.NET以及Java世界的「市場」。可能將來會產生面向後端的視覺拖放框架。

在部署層,Docker的方式變得愈來愈流行,由於你在生產環境開發(無差別)。

在2015年之初,我寫下了一些預測。並非全部都和科技有關。可是可能對你來講會頗有趣:http://webapplog.com/my-predictions-for–2015

問:有哪些設計決策讓JavaScript在開發和企業級應用方面一直保持長青?

使用JS,你能夠直接解決問題。由於JavaScript是一種表現力很強的語言,這意味着你不用花不少時間來設置,換句話說,更小的額外負擔。與之相比,Java的架構師僅僅在創造界面、類,構建梯階、環境上就要花不少時間。總之:JavaScript更簡單,用起來也更有樂趣。

使用Node/Io時,你能夠在後端和數據庫層使用JavaScript的API或語言。因此在瀏覽器和服務器之間代碼不須要上下文切換。若是沒有上下文切換,那麼生產力也會更高。

NPM可以幫助企業切換得更快是由於企業意識到NPM是由不少好用的優秀模塊構成的。可是,主要緣由仍是可擴展性。利用非阻塞I/O,企業應用能夠用更少的資源(服務器,內存,CPU)伺服更多頁面。

問:做爲一種編程語言JavaScript有些「很差的部分」,你認爲基於JavaScript開發出的語言CoffeeScript如何?

CoffeeScript很不錯,對於企業來講甚至更合適。ECMAScript 6標準從CoffeeScript那裏借鑑了不少。

若是你須要一個好結構,那就用CoffeeScript吧!

你能夠註冊個人免費CoffeeScript線上課程:https://www.udemy.com/coffeescript

問:JavaScript有不少框架和庫,如何才能在衆多資源中選擇,而後創建屬於本身的技術棧?

NPM(Node包管理器)發展很快,應該是你選擇過程的最好起點。另外,我創造了「Node框架」網站,在那裏我選出了最佳模塊。你能夠在「Node框架」上選擇加入,查詢如下簡報:

問:現在,移動互聯網已經變得愈來愈重要,在這種狀況下前端工程師須要面臨什麼樣的機會和挑戰?

最開始的挑戰在於平臺分隔,開發者們試圖經過HTML5解決問題。可是HTML5的問題在於,相比於原平生臺,HTML5的工具備些簡陋。

如今,像Ionic這樣的框架讓你可使用前端技術以及Angular和Backbone框架,同時你也能夠利用一些原生的功能。我認爲這是一個好的趨勢。(Node和JS不只被用在桌面開發中,也被用在機器人和嵌入式系統中。)

問:在讀你的書以前,你建議讀者先了解什麼知識?在讀完你的書後你建議他們讀些什麼或作些什麼?

《JavaScript快速全棧開發》是一本Node棧的入門書,在讀完以後我建議閱讀Practical Node.js。這本書會爲你徹底綜述整個開發過程的全貌:模板引擎、部署、代碼組織、安全、數據庫、等等。


更多精彩,加入圖靈訪談微信!

圖片描述

相關文章
相關標籤/搜索