2011網頁開發熱門技術 - Node.js

評論
評論

談到網頁的開發技術,許多人的印象中不外乎便是 PHP、Java 或是.Net 等等,而比較新興的技術則可能是 Ruby 或是 Python,在本系列文章中,我將介紹在近日中熱門的網路技術,讓各位讀者能夠掌握最新趨勢。

Node.js

Node.js 絕對是這一年最火熱的名詞了,若是你像 Insiders 一樣關注 Hacker News 等國外媒體的話,你一定會看到 Node.js 的相關討論。

Node.js 顧名思義便是使用 JavaScript 語言作為基礎的框架,特別的是,相對於 jQuery 或是 YUI 等在瀏覽器中運行使用的 JavaScript 框架,Node.js 是作為網站程式的後端框架,就如同 PHP 或是 Java 一般開發網站。

換句話說,JavaScript 不只可以跑在瀏覽器中,還可以當做網站的伺服器!這個想法是非常的新鮮有趣,主要的原因是在於隨著 Gmail 等 AJAX 網站以及技術的興起,許多的程式開發者紛紛投入心力鑽研 JavaScript,並且有許多開發心得、優化技巧陸續被發掘,加上瀏覽器之間的競爭越來越激烈,JavaScript 的執行效能持續性的突破,因此最終便誕生了 Node.js。

簡單的範例

Node.js 在官網上便提供了一個簡單的 Helo World 範例,如下:

var http = require('http');  http.createServer(function (request, response) {     response.writeHead(200, {'Content-Type': 'text/plain'});     response.end('Hello World\n'); }).listen(8000);  console.log('Server running at http://127.0.0.1:8000/');

或許各位有注意到了,其整支網站程式架構便是在一個簡單的 JavaScript 當中,並且提供了很好的自定彈性。

除了作為 HTTP Server 之外,Node.js 也可以提供作為一般 TCP Server 使用。

實際的應用

雖然仍然是相對較新的技術,但截至目前為止,Node.js 已經有一些實際的應用範例可以參考了。

Inside 前幾天與 Plurk 亞太區總監的對談 中,便提到了 Plurk 使用了 Comet 技術來讓訊息的更新可以達到近乎即時的效果,其背後的技術便是透過 Node.js(不過後來似乎又換回 Java?)。

在他們開發者 Amir 的部落格中,便有 Node.js 和 Comet server 的技術經驗分享 投影片、以及簡單的程式碼範例可以下載,而其在台北的 TOSSUG 聚會中的 演講影片也可以在 YouTube 上觀看

另外值得一提的是,HP 的平板電腦和智慧型手機作業系統 WebOS,也 內建了 Node.js 作為開發的環境 之一。

在 GitHub 上的專案 Wiki 頁面中也有 相關開放原始碼專案和使用 Node.js 的公司列 表,有興趣的讀者可以參考。

具體的優點

整體而言,Node.js 具有幾個相當有吸引力的特點:

JavaScript

無論你先前曾經是 PHP、Ruby 或是 Python 的開發者,多少對於 JavaScript 都會具有一些基本的概念。因此要上手 Node.js 可以算是相對的迅速很多。

優秀的效能表現

Node.js 是建築在 Google Chrome 所開放原始碼的 V8 JavaScript 引擎上,是目前最快速的 JavaScript 處理引擎之一,以 non-blocking 的概念作為基礎(與 Nginx 雷同),提供相對於一般網頁伺服器(像是 Apache)更快速的 request 處理效能。

強大的社群支援

更吸引人的一點,則不外乎其強大的社群支援了!如同先前提到的,目前國外最炙手可熱的技術便是 Node.js,上網搜尋隨時都可以找到許多文章,而在問答網站像是 StackOverflow 上也有許多熱心的網友願意替大家解決相關問題。

而其套件管理系統 npm 中也擁有了上千個套件可以提供開發者們使用,且這個數字正在持續的快速增加中!

學習的資源

對 Node.js 產生興趣了嘛?下面是一些不錯的學習資源可以提供參考:

結論

Node.js 在國外的 hackers 中可謂炙手可熱,而國內也逐漸有愈來月多的開發者持續關注當中。雖然實際應用鮮少有機會可以全部透過 Node.js 來開發,但針對一些需要即時性的,像是聊天室或者是 news feeds 等便可以考慮透過 Node.js 作為解決方案。

你有關於 Node.js 的相關經驗可以與我們分享嘛?歡迎留言或者是來信!


精選熱門好工作

Video/Image Processing Software Engineer

PicCollage 拼貼趣
臺北市.台灣

獎勵 NT$20,000

Web UI視覺設計師

酷遊天國際旅行社股份有限公司
臺北市.台灣

獎勵 NT$20,000

Marketing Associate 行銷專員

Deliveroo 戶戶送
臺北市.台灣

獎勵 NT$4,000

評論