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

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

談到網頁的開發技術,許多人的印象中不外乎便是 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 的相關經驗可以與我們分享嘛?歡迎留言或者是來信!


中小學生家長別錯過幫孩子報名!宅在家也能邊玩邊學的CodeComabt線上程式競賽開跑!

遠距學習已是近日趨勢,怎麼讓孩子的學習跟上國際的腳步?2021國際青少年程式爭霸賽,讓8~16歲的孩子在家就能線上參加程式競賽。
評論
評論

即將到來的暑假是讓中小學生放風體驗各種活動的時機,但眼看疫情蔓延,家長們還遲遲未動手幫孩子選擇夏令營活動嗎?現在有一個針對中小學生的國際性線上程式競賽正在舉辦,已吸引全國從北到南甚至花東許多學校的中小學生報名參加,千萬別錯過!

「2021國際青少年程式爭霸賽」是針對 8~16 歲孩子所籌辦的線上程式競賽,由科技教育新創公司 AI4kids、南一出版集團與社團法人中華多元智能教育協會合作發起第一屆賽事,採用全球有 2000 萬用戶的遊戲化程式教育平台 CodeCombat 作為參賽選手的學習與比賽網站,免報名費即可參加,讓中小學生從「零基礎」開始,透過解題關卡練習,逐步學習 Python 程式語言,並透過精心設計的英雄程式對戰系統來比賽。

過去這個競賽機制每年會在香港、新加坡、美國等各地區辦理,吸引廣大的學生參賽,今年第一次由主辦單位引入台灣,自七月起,分初賽、複賽與決賽三階段競技,最後決賽勝出的選手,更將代表台灣參加美國 CodeQuest 全球競賽!

▲2021國際青少年程式爭霸賽四月先在桃園祥安國校舉辦前導校內賽 讓小六學生熱血投入、大喊好玩!

邊學習邊參賽 接軌 108 課綱程式設計能力

目前中小學校大部分以 Scratch 積木式程式語言來培育孩子運算思維,主辦單位希望透過這場比賽,讓中小學生進一步接觸真實的 Python 程式語法,以提早接軌 108 課綱國、高中科技領域的程式設計能力。而這對中小學的孩子來說會很難嗎?一點也不會,因為競賽平台 CodeCombat 的設計是以遊戲化介面、英雄與寶石故事場景來吸引中小學生從淺入深一步一步的學習程式基礎語法,從資料型態、變數、參數、字串一直到迴圈、條件式、函示等程式邏輯概念,都能透過關卡大量練習來精進,在新加坡、香港等其他國家也用 CodeCombat 平台舉辦過多屆青少年的程式大賽。

競賽平台 CodeCombat 的遊戲化學習程式介面,讓中小學生躍躍欲試
初賽競技場 選手需寫出程式讓自己的英雄戰勝對手
初賽競賽場,選手須充分發揮運算思維,寫出程式來操控英雄挑戰對手取得勝利。
從初賽、複賽到決賽 每個階段合格選手,均能取得電腦科學國際證書

怎麼讓孩子準備比賽

效法均一教育平台,主辦單位亦為參賽選手們準備了程式教學影片,家裡只要有一台上網電腦,就可以讓孩子來參加比賽,孩子將透過專業講師的指導加上大量程式關卡練習,在分階段的賽程中取得好成績。主辦單位也積極籌辦線上選手營,在暑假期間,讓中小學生可以透過線上真人講師指導的方式,精進競賽的實力。

參加賽事過程中有教學影片讓小選手們從零開始準備競賽所需的程式能力
準備電腦與網路給孩子,在家就能學程式參加比賽
進入決賽的選手將獲主辦單位推薦參加 CodeQuest 全球青少年程式競賽

如何報名

2021 國際青少年程式爭霸賽,自即日起自 7/10 止,開放所有中小學生報名,分國小組與國中組兩個組別,競賽採多人程式對戰方式,可重複上傳自己的程式碼,由系統自動計算成績並更新排名,直到競賽日期截止。初賽自即日起~7/11、複賽 7/13~7/18、決賽 7/23~7/25,通過每階段挑戰的選手均可以獲得證書與排名獎狀,決賽優勝選手由主辦單位推薦參加 CodeQuest 全球競賽,與來自全世界的青少年一同競技,難得的競賽盛會,家長們千萬別錯過為孩子報名的機會!

競賽報名網址:https://ai4kids.ai/itcc2021/

競賽報名QRcode

(學校或教育機構團體報名,請洽社團法人中華多元智能教育協會 02-26624610)

主辦單位

競賽平台

聯繫主辦單位

Email:[email protected]
Messenger:https://m.me/AI4kidsTW

本文由「愛奇智慧科技」提供,經關鍵評論網媒體集團廣編企劃編審。