iT邦幫忙

2017 iT 邦幫忙鐵人賽
DAY 3
0

Node.js Logo

前言

知道 Chrome V8 、 Node.js 的過去,這篇要來談談 Node.js 到底是什麼吸引大神們的目光?自己去問問大神們吧 XD (看到 Chrome V8 只有問號的朋友,可以到 [Day1] 淺談 Chrome V8 engine 看看)

這篇會偏向我的觀點來說 Node.js 吸引我的地方!

嘿!Node.js

要推人入坑進 Node.js 少不了會提到它的優點,例如:

  1. 會 JavaScript 就可以寫平臺
  2. 有豐富的生態圈(npm
  3. 事件驅動
  4. 非同步編程

然後就很可能產生以下幾種情況!

Q1. Java 本來就可以寫平臺!

  • JavaScript 和 Java 是不一樣的!JavaScript 曾經叫 LiveScript ,後來才變成大家熟悉的 JavaScript 。至於為何叫 JavaScript ?曾看過有一種說法是當時的 Java 當紅,想坐個順風車。有興趣的朋友可以查查 ECMAScript 的歷史,在實踐標準的過程 JavaScript 是眾多選手中的一位而非唯一,至少是否搭順風車就留給大家查證!

Q2. 前端開發人員可以無痛到後端寫平臺!

  • 使用同種語言開發不等於開發邏輯相同,就好比全世界都在學中文,所以會說中文的人都跟臺灣/中國有關!語言相同只是減少接觸時被誤解的可能,在某些程度上提升了效率。

Q3. Node.js 有 npm 的生態圈可以很快開發好專案!

  • 有 npm 生態圈的存在確實加速了開發,但也可能讓開發人員過度依賴,最引人注目的事件就屬今年發生的 kik message 引發的 Azer Koçulu 刪 repository 事件。這裡不多少說明事情影響範圍有多大,一定比你想像的大許多,有興趣可以到最底下參考資料看或自行 Google 一下。

Q4. Node.js 、 npm 都只有單執行緒!

  • Node.js 預設運作仍跑單執行緒,但實際上已經提供 多執行緒 的功能,只是使用上不如第三方解決方案,如: PM2;而 npm 的部分,近期可以試用 Facebook Yarn ,會有滿明顯的差異;當然相信 npm 之後也會再進行優化,有興趣的朋友可以翻翻 npm 的 issue 看看討論串會有許多值得一看的內容。

參考資料

  1. JavaScript wiki
  2. 抽掉 11 行程式就讓網路大崩塌!一場撞名事件,看開源的威力與權力衝突
  3. NPM & left-pad: Have We Forgotten How To Program?

上一篇
[Day 2] Node.js 的分裂、延伸、合併
下一篇
[Day 4] Node.js 的 Document (1) - 與 ES6 的友好關係
系列文
從零開始認識 Node.js31

尚未有邦友留言

立即登入留言