Posted on 2013-07-30 12:19
C小加 閱讀(2634)
評(píng)論(0) 編輯 收藏 引用 所屬分類:
JavaScript
JavaScrpit在我眼中一直是web前端腳本語(yǔ)言,而這段時(shí)間的一些工作,讓我對(duì)JavaScript有了一個(gè)全新的認(rèn)識(shí)。
公司準(zhǔn)備啟動(dòng)的一個(gè)手游項(xiàng)目,服務(wù)器端準(zhǔn)備使用網(wǎng)易的開(kāi)源框架pomelo。pomelo是基于Node.js的高性能,分布式游戲服務(wù)器框架。它包括基礎(chǔ)的開(kāi)發(fā)框架和相關(guān)的擴(kuò)展組件(庫(kù)和工具包),可以幫助你省去游戲開(kāi)發(fā)枯燥中的重復(fù)勞動(dòng)和底層邏輯的開(kāi)發(fā)。 pomelo不但適用于游戲服務(wù)器開(kāi)發(fā), 也可用于開(kāi)發(fā)高實(shí)時(shí)web應(yīng)用,它的分布式架構(gòu)可以使pomelo比普通的實(shí)時(shí)web框架擴(kuò)展性更好。
網(wǎng)易的架構(gòu)師們選擇了node.js作為服務(wù)器端架構(gòu)的核心,說(shuō)明了Node.js作為后端的Javascript運(yùn)行環(huán)境一定有它自己的優(yōu)越性。
提到Javascript,大家首先想到的是日常使用的瀏覽器,現(xiàn)代瀏覽器包含了各種組件,包括渲染引擎、Javascript引擎等,其中Javascript引擎負(fù)責(zé)解釋執(zhí)行網(wǎng)頁(yè)中的Javascript代碼。作為Web前端最重要的語(yǔ)言之一,Javascript一直是前端工程師的專利。不過(guò),Node.js是一個(gè)后端的Javascript運(yùn)行環(huán)境(支持的系統(tǒng)包括Lnux、Windows、Mac),這意味著你可以編寫系統(tǒng)級(jí)或者服務(wù)器端的Javascript代碼,交給Node.js來(lái)解釋執(zhí)行。
Node.js支持的語(yǔ)言是JavaScrpit,之所以選擇JavaScrpit作為服務(wù)器端運(yùn)行語(yǔ)言理由如下:
1.Javascript作為前端工程師的主力語(yǔ)言,在技術(shù)社區(qū)中有相當(dāng)?shù)奶?hào)召力。而且,隨著Web技術(shù)的不斷發(fā)展,特別是前端的重要性增加,不少前端工程師開(kāi)始試水”后臺(tái)應(yīng)用“,在許多采用Node.js的企業(yè)中,工程師都表示因?yàn)榱?xí)慣了Javascript,所以選擇Node.js。
2.Javascript的匿名函數(shù)和閉包特性非常適合事件驅(qū)動(dòng)、異步編程,從helloworld例子中我們可以看到回調(diào)函數(shù)采用了匿名函數(shù)的形式來(lái)實(shí)現(xiàn),很方便。閉包的作用則更大,看下面的代碼示例:
var hostRequest = http.request(requestOptions,function(response) {
var responseHTML ='';
response.on('data', function (chunk) {
responseHTML = responseHTML + chunk;
});
response.on('end',function(){
console.log(responseHTML);
// do something useful
});
});
在上面的代碼中,我們需要在end事件中處理responseHTML變量,由于Javascript的閉包特性,我們可以在兩個(gè)回調(diào)函數(shù)之外定義responseHTML變量,然后在data事件對(duì)應(yīng)的回調(diào)函數(shù)中不斷修改其值,并最終在end事件中訪問(wèn)處理。
3.Javascript在動(dòng)態(tài)語(yǔ)言中性能較好,有開(kāi)發(fā)人員對(duì)Javacript、Python、Ruby等動(dòng)態(tài)語(yǔ)言做了性能分析,發(fā)現(xiàn)Javascript的性能要好于其他語(yǔ)言,再加上V8引擎也是同類的佼佼者,所以Node.js的性能也受益其中。
JavaScript不僅在服務(wù)器端開(kāi)始流行,在游戲客戶端編程方面也成為了一個(gè)很重要的選擇。就在不久前,目前非常流行的一個(gè)手游引擎cocos2d-x也推出了JavaScript版本。引用創(chuàng)始人王哲的一句話,如果說(shuō)C++最靠譜的話,那么Lua應(yīng)該算是最流行,而Javascript是最有前景。