濮阳杆衣贸易有限公司

主頁(yè) > 知識(shí)庫(kù) > 選擇Node.js作為服務(wù)器端運(yùn)行環(huán)境的優(yōu)勢(shì)解析

選擇Node.js作為服務(wù)器端運(yùn)行環(huán)境的優(yōu)勢(shì)解析

熱門標(biāo)簽:河南語(yǔ)音外呼系統(tǒng)平臺(tái) 百應(yīng)電話機(jī)器人價(jià)值 金蘭灣地圖標(biāo)注app 南京400電話辦理到易號(hào)網(wǎng) 地圖標(biāo)注不顯示 周口權(quán)威的不封卡電話外呼系統(tǒng) 福州公司外呼系統(tǒng)加盟 外呼系統(tǒng)2273649Z空間 河北crm外呼系統(tǒng)平臺(tái)

Groupon從Ruby on Rails遷移至Node.js

為什么要放棄原有技術(shù)棧?

Groupon目前在全球共有兩套站點(diǎn)——美國(guó)網(wǎng)站和歐洲網(wǎng)站,其美國(guó)網(wǎng)站前端最初是一個(gè)單一的Rails(最流行的Ruby開(kāi)發(fā)框架)代碼庫(kù)。對(duì)于為什么會(huì)選擇Rails來(lái)開(kāi)發(fā)最初的網(wǎng)站,Groupon開(kāi)發(fā)人員表示,Rails非常適合小型團(tuán)隊(duì)快速開(kāi)發(fā),可以讓網(wǎng)站快速啟動(dòng)并運(yùn)行起來(lái),這對(duì)于初期功能不斷變化的Groupon來(lái)說(shuō),是個(gè)非常不錯(cuò)的選擇。

隨著Groupon的發(fā)展和新產(chǎn)品不斷推出,這個(gè)代碼庫(kù)越來(lái)越大,有太多的開(kāi)發(fā)者在同一個(gè)代碼庫(kù)工作,他們很難在本地運(yùn)行并測(cè)試產(chǎn)品,如果有問(wèn)題需要回滾,那么每個(gè)人的工作都前功盡棄了。

Groupon團(tuán)隊(duì)決定將原有的單一Rails庫(kù)分割成小的、獨(dú)立的、更易于管理的庫(kù)。

為什么選擇Node.js?

Groupon團(tuán)隊(duì)評(píng)估了不同的軟件棧,想尋找一個(gè)能夠解決這些問(wèn)題的方案——有效處理大量傳入的HTTP請(qǐng)求、使并行API請(qǐng)求服務(wù)于每一個(gè)HTTP請(qǐng)求、將結(jié)果渲染為HTML5,并可以有效實(shí)現(xiàn)監(jiān)控、部署和支持。

該團(tuán)隊(duì)使用不同的軟件棧開(kāi)發(fā)了原型,并測(cè)試了它們,總體來(lái)說(shuō),發(fā)現(xiàn)Node.js是個(gè)非常適合的解決方案。

如何遷移?

Groupon團(tuán)隊(duì)使用Node.js重建了網(wǎng)站頁(yè)面的每個(gè)主要部分,將它們作為一個(gè)獨(dú)立的Node.js應(yīng)用程序,然后重建了基礎(chǔ)設(shè)施,使所有獨(dú)立的應(yīng)用程序可以一起工作。遷移之后,Groupon成為了全球最大的Node.js部署產(chǎn)品之一。

遷移帶來(lái)的好處

之前單個(gè)Rails前端代碼庫(kù)被分割成了20個(gè)獨(dú)立的應(yīng)用程序,其帶來(lái)了如下的好處:頁(yè)面加載更快——快了50%與之前相比,處理相同的流量所使用的硬件資源更少團(tuán)隊(duì)可以獨(dú)立地更改、部署各自負(fù)責(zé)的模塊網(wǎng)站功能和設(shè)計(jì)實(shí)現(xiàn)可以快速迭代
更詳細(xì)的信息可參閱 Groupon開(kāi)發(fā)團(tuán)隊(duì)的博客。


選擇Nodejs的N個(gè)理由
Caleb Madrigal是來(lái)自美國(guó)密爾沃基市的一名軟件顧問(wèn)。四年前,他在聽(tīng)說(shuō)“將JavaScript用作服務(wù)器端語(yǔ)言”這樣的說(shuō)法時(shí),認(rèn)為那是一個(gè)荒唐的想法。有那么多服務(wù)器端語(yǔ)言可供選擇,為什么要選JavaScript?這是他當(dāng)時(shí)的想法。但現(xiàn)在,他在當(dāng)前的項(xiàng)目中選用了JavaScript/Node.js。他近日撰文對(duì)自己的這一轉(zhuǎn)變進(jìn)行了解釋。

首先,許多頂級(jí)企業(yè)都使用了Node.js,并且效果非常好,其中包括PayPal、Walmart、Ebay、Groupon和LinkedIn。這些企業(yè)在生產(chǎn)環(huán)境中大量使用了Node.js。Madrigal舉了PayPal的例子。PayPal針對(duì)他們網(wǎng)站上其中一個(gè)流量最大的應(yīng)用,對(duì)比了它的Node.js版本和Java版本,發(fā)現(xiàn)前者在多個(gè)方面優(yōu)于后者,并最終決定由Java切換到JavaScript。InfoQ對(duì)此有過(guò)報(bào)道。

其次,Node.js有一個(gè)很棒的包管理系統(tǒng)NPM。通過(guò)運(yùn)行“npm install 包名”幾乎可以安裝任何包/庫(kù)。另外,通過(guò)package.json文件可以跟蹤依賴關(guān)系。因此,Node.js庫(kù)很容易克隆,運(yùn)行“npm install”可以安裝所有的依賴關(guān)系。

再次,Node.js社區(qū)異常活躍,總是有新的庫(kù)產(chǎn)生。這些庫(kù)非常好用,使JavaScript成為一個(gè)非常高效的平臺(tái)。

然后是Node.js 的REPL(read-evaluate-print loop)命令行。開(kāi)發(fā)人員只需要在終端中輸入“node”,就可以對(duì)Node.js進(jìn)行逐行測(cè)試。

最后,Node.js有一個(gè)很重要的特性:非阻塞函數(shù)。這就是為什么我們會(huì)在Node.js的代碼中看到大量的callbacks和promises。這種設(shè)計(jì)模式給Node.js帶來(lái)了非常優(yōu)異的性能。

此外,Node.js的最大一個(gè)優(yōu)點(diǎn)是:它是JavaScript。任何人都知道JavaScript,所以使用Node.js不需要學(xué)習(xí)一門新語(yǔ)言。有了它,開(kāi)發(fā)人員可以只使用一種語(yǔ)言,瀏覽器端用JavaScript,服務(wù)器端用Node.js。在使用像MongoDB和CouchDB這樣存儲(chǔ)JSON對(duì)象的文檔數(shù)據(jù)庫(kù)時(shí),這會(huì)極大地簡(jiǎn)化數(shù)據(jù)庫(kù)和用戶界面之間的數(shù)據(jù)傳遞任務(wù)。

標(biāo)簽:南京 撫州 自貢 瀘州 臺(tái)州 長(zhǎng)治 贛州 呼和浩特

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《選擇Node.js作為服務(wù)器端運(yùn)行環(huán)境的優(yōu)勢(shì)解析》,本文關(guān)鍵詞  選擇,Node.js,作為,服務(wù)器,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《選擇Node.js作為服務(wù)器端運(yùn)行環(huán)境的優(yōu)勢(shì)解析》相關(guān)的同類信息!
  • 本頁(yè)收集關(guān)于選擇Node.js作為服務(wù)器端運(yùn)行環(huán)境的優(yōu)勢(shì)解析的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    竹北市| 延寿县| 定西市| 汤阴县| 洛隆县| 大洼县| 讷河市| 盐山县| 盐池县| 罗江县| 长丰县| 华阴市| 湖北省| 丹寨县| 舟山市| 自治县| 兴海县| 上栗县| 得荣县| 中超| 沐川县| 朝阳区| 金阳县| 梓潼县| 揭阳市| 平乡县| 香河县| 渑池县| 东辽县| 科尔| 阿坝县| 米泉市| 庄浪县| 建水县| 池州市| 巧家县| 新乡县| 剑川县| 正镶白旗| 怀化市| 旺苍县|