最近才開始學習 node.js ,深深驚訝於 JavaScript 已經完全不是當年那個在寫 DHTML 時為了讓 Browser 上的網頁能有更多的 client 端互動功能的 「Java Script」了,基本上 Java Script 本身就是一套完整的語言,而GOOGLE 原本使用於瀏覽器上面的 Java Script 強大的 V8 解譯器,也不知道哪個天才想到了將這個解譯器直接放到 Server 端運行,讓 JavaScript 不需要執行在 Browser 環境上,然後有了以 Java Script 技術開發的各種底層架構堆疊,透過類似 var http= require("http"); 的方式來讓 JS程式可以直接 import 使用各種日漸完善的各式強大功能的 Jascript 運行框架。
這使得寫 java script 這原本是 run 在 browser 上的小玩意忽然變身成可以直接在 server 上運行並直接提供 http 服務或是各種 socket server 服務的強大伺服器端程式,當然其中的精華奧妙在於他可以透過以往我完全沒有接觸過的 function callback 機制,也就是將呼叫函數的時後直接使用一個函數當作傳入的參數,直接讓被呼叫的函數可以直接將這個傳入的函數當作區域函數使用,然後這種 callback 的架構也可以讓函式變成是 event driven 的架構,也就是某個函數我先定義好某個事件被觸發(某個函數 callback 回CALL了)則再照著 callback 的腳本接續一個一個觸發,不需要一個while loop 在那邊等事件是否觸發了,而是事件被定義之後會自己等著被觸發。
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
其它部份的程式可以繼續往下執行,不會因為這個事件在等著觸發而讓整個流程被卡住,這真是非常玄妙的一種設計概念,也是 node.js 運行的核心方式,因為 callback 運行方式只要單執行緒運作,整個程式主要線程不會因某個事件未觸發而卡住,因此是個而效能極佳的語言,目前 Google 以及 Yahoo 等大咖都在致力於使用 node.js,最近看到一本很棒的電子書叫 「Node入門」,書中深入潛出的講解 Node.js 的原理以及運作方式,非常適合當作 node.js 入門參考推薦書籍 。
node.js 電子書教學推薦「Node入門」
沒有留言:
張貼留言