前言
從 PHP(特別是 Drupal)轉向 Node.js,語言同為 JavaScript,上手快且愉快。但思維模式需轉變。以下 5 點是 PHP 開發者最該理解的 Node.js 特性。
1. 建構於 Chrome V8 引擎之上
- V8 的 JIT(即時編譯)讓 JS 執行速度逼近原生代碼,效能遠超傳統 PHP/Ruby。
- 無需學新語言,瀏覽器 JS 文檔(MDN、Chrome DevTools)皆適用。
- V8 持續優化,Node.js 自然受益。
2. 不只是 Web 伺服器,而是通用 JS 執行環境
- PHP 以 Web 為核心;Node.js 內建強大模組(fs、net、child_process 等),可開發 CLI 工具、TCP/HTTP 服務、桌面應用等。
- HTTP 伺服器只是眾多內建模組之一(
require('http'))。
3. 物件導向但基於原型鏈
- JS 物件模型雖奇特,但 Node.js/NPM 善用原型系統,模組化設計極佳。
- 從 jQuery 的鏈式寫法轉向架構思維,強迫你正視物件設計,反而愛上 OO JS。
4. 事件驅動、非阻塞 I/O、單執行緒
- 單執行緒處理所有請求,透過事件迴圈分派 I/O 至背景執行緒。
- 優點:高併發、低記憶體佔用。
- 挑戰:CPU 密集運算會阻塞事件迴圈,必須拆解為非同步回呼、Promise 或 Worker Threads。
- 核心原則:別讓單一請求佔用主執行緒過久。
5. 模組管理是核心:NPM 不可或缺
- PHP 核心內建大量功能;Node.js 核心極精簡,資料庫驅動、模板引擎、郵件庫皆須從 NPM 安裝。
- NPM 生態極豐富,發布套件極簡單(
npm publish)。
- 類比 Drupal 模組系統,但面向開發者而非建站者。
結語
Node.js 非萬靈丹,不會立即取代 PHP。但 PHP 開發者學習 Node.js 能拓寬視野、理解事件驅動架構,對職涯極有助益。建議嘗試建立小專案體驗。