關於 Node.js:所有PHP開發人員應該知道的5點

來源:互聯網
上載者:User

1. Node.js構建於Chrome的JavaScript引擎 

我們知道,Google的Chrome瀏覽器有一個非常快速的JavaScript引擎,叫做V8。這個JS引擎可以被獨立出來。Node.js就是建立在V8之上的。這也是為什麼Node.js會運行得如此之快。這對於開發人員來說,有幾個好處: 

  • 你不需要重新學習一門新的語言,它就是JS。我常常查看Chrome和Mozilla的JS文檔,他們完全通用。
  • 受益於V8的 JIT(Just In Time,即時)編譯功能,Node.js應用的運行速度可以和本地代碼媲美。對比測試表明,Node.js 要比 PHP 和Ruby 快很多。
  • 隨著V8的進步,Node.js 將同時受益。

2. Node.js不僅僅是一個網頁伺服器或者平台 

和PHP不同,Node.js 不是以網頁為中心的。Node.js 是通用目的的JS運行時,帶有很多功能強大的庫。其中有一個庫提供了 HTTP/HTTPS 的實現。 

你可以用Node.js做很多事情。你可以很容易地利用它來建立一個命令列程式或者其他TCP/IP服務。 

3. Node.js 是物件導向的 (類似於古怪的JavaScript物件導向風格) 

我喜歡jQuery。但是它讓我變懶,寫了很多簡單、快速但是很難看毫無架構可言的指令碼。這並不是什麼壞事,因為處理簡單的網頁行為,這足夠了。但是 Node.js不是僅僅用來處理瀏覽器上面的事情的,它可以用來構建應用程式,也就是你必須考慮程式架構。當你用Node.js寫代碼的時候,你將深入到JS的物件模型中。我曾經很討厭JS的物件模型,常常把我搞瘋掉。但是Node.js和NPM(Node
Package Manager)很好地利用了JS的原型系統,協助我清楚了很多類/介面使用中的障礙,讓我愛上了物件導向的JS編程。 

4. 基於事件的 I/O 

這是Node.js最有爭議的一點。Node自身在一個線程中運行。是的,只有一個!你可以和傳統的 Apache/PHP 的一堆執行個體對比一下。但是Node運行得很快速、高效。 

這是怎麼做到的?共用執行時間,把密集的IP處理放到別的線程處理。對於這一點的優點與缺點我可以寫很長的文字來討論,但這裡我想說點實際的:當你用 Node.js寫代碼的時候,你需要考慮你的任務是否是慢的,或者I/O密集型的。使用非同步方法來處理回調或者使用事件處理器來處理執行慢的工作。 
最主要的是,你要保證代碼不讓一個請求佔據Node主線程太長事件,並且不給其他請求處理的機會。 

5. 必須使用包管理! 

老實說,你喜歡PEAR嗎?你是不是把你大部分的代碼都轉換成PEAR或者PECL包了?並沒有很多PHP程式員這麼做,甚至很多人並不知道PEAR的存在。在Node.js的世界裡,你必須把代碼打包: 

  • Node.js的設計就是一個最精簡的架構。PHP核心的90%的東西都不會在Node.js核心中出現。例如,資料庫驅動、郵件發送庫、HTML支援等等,都不在核心庫中。
  • Node.js的核心就是一個模組化的架構。你會發現它很好用!
  • NPM(Node Package Manager)是你必備的工具。有了它,你就可以下載Node.js的各種程式碼封裝、驅動、解析器、編輯器、伺服器等。
  • 建立並且發布你的程式碼封裝非常簡單。我在使用Node工作不久就發布了我的第一個程式碼封裝。

如果你是一個Drupal開發人員,你會覺得Node的包管理系統有點像Drupal的模組,不同的是你現在面對的是開發人員,不是建站者。 

最後:Node.js是否合適你 

在上文中我提到了很多Node.js的特性,而這些是我認為作為PHP開發人員應該知道的。本文的基調也是基本趨向於肯定。Node是一個有趣的產品,其結構優雅。但是Node並不是萬能藥。我並不認為Node能夠馬上替代PHP。我只是認為PHP開發人員都應該學習一下Node.js。它很簡單,很有用。 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.