Node.jsはサーバーサイド/フロントエンジニアの必須スキル

NODEってなんだろう?

普及が続くサーバサイドフレームワークNode.jsは、JavaScriptの一種でサーバーが構築できる言語。

聴きなれない人は、「JavaScripとはブラウザ側の言語では?」と思った方もいるのではないでしょうか。元々サーバサイドでJavaScriptは存在していたが、いくつかの問題点があり蚊帳の外に置かれていた。改めて注目されるようになった理由はいくつかあります。

Nodeが注目されるようになった理由

  • 高負荷時のパフォーマンスが優れている
    イベントループ・モデルで処理を直列化することで、メモリ利用量を抑えプロセス/スレッド間の競合を防ぐ。Apache(mod_php)比較した場合、同時接続ユーザー数が100未満だと処理に差がないが、500以上になると差が明らかになる。
  • リアルタイムWEB
    一昔前のチャットでは、「誰か発言してないかな・・」とページをリロードして確認していました。なぜならサーバーに新しい情報が入ったときに「ページに新しい情報が来たよ」と教えてくれないからです。しかし、Nodeを使用すればリアルタイムに発言を受け取りが可能になります。
  • スマートフォン需要と技術者スキルアップ
    スマートフォンの急速な普及によるJavaScriptの需要が高まり、それを仕事にするエンジニアの増加とスキルアップ。結果サーバーにあまり詳しくないエンジニアでも、「JavaScriptなら・・・」と参入障壁が下がった。

NODEの技術はWEBやモバイル、ソーシャル、ゲームなどで、今後活躍の幅を広げるのは間違いない技術になりそうです。

インフォグラフィック:Node.jsはサーバーサイド/フロントエンジニアの必須スキル

NODEってなんだろう?

参照元:http://www.engineyard.co.jp/infographics/nodejs


サーバサイドフレームワークNode.jsの需要が急上昇中

2015年モバイルインターネット背景

  • 66%のアメリカ人がモバイル端末からインターネットに接続
  • 世界のトップ100のサイト中、34がHTML5
  • モバイルの成長+HTML5の一般性=リアルタイムWEBの飛躍
    リアルタイムWEBにはリアルタイムな技術が必要

入門NODE.JS

NODE.JS

  • イベントドリブンとノンブロッキングI/Oを採用したサーバサイドフレームワーク
  • フロントエンドとサーバサイドのアーキテクチャを統合するためにJavaScriptで構築
  • ハイパフォーマンス、高スケーラビリティ、分散リアルタイムWEBアプリケーションに最適
  • GitHubで2番目にウォッチされているリポジトリ
  • Ruby on Railsよりもウォッチされています
  • Nodeパッケージマネージャにはすでに12,000のパッケージが登場

NODE.JSの有名事例

LINKEDIN

Linkedlnはモバイル向けサーバサイドスタックをすべてNode.jsで構築

  • 以前は15台のサーバ上で15のインスタンスが物理マシン上で稼働
  • 以降は4つのインスタンスで2倍のトラフィックを処理
WALMART

WalmartはモバイルアプリをNode.jsを使って再構築

  • すべてのJavaScript処理をサーバサイドに移行
    →リッチでダイナミックな体験を顧客に提供
EBAY

eBayはNode.jsを実行環境にしたHTTP APIゲートウェイql.ioを公開

通常の開発者向けUbuntuのワークステーションを使って

  • 120,000Node.jsのプロセス毎のアクティブな接続数
  • それぞれの接続は2kのメモリを消費
PLUS
  • ネットワーク対応、マルチプレイヤーゲーム
  • インタラクティブなWebサイトとツール
  • アクセス解析
  • オンラインチャットシステム

開発者がNode.jsを好きな理由

  1. JavaScript製
  2. コードをブラウザ、サーバ、データベースなどで再利用可能
  3. 強力で情熱的なコミュニティ
  4. パフォーマンスとスケーラビリティ
  5. 開発者の幸福

Node.jsの道を行こう

コミュニティの成長が早いだけで大丈夫?

  1. Web
  2. モバイル
  3. ソーシャル
  4. ゲーム

全てのプラットフォーム環境でダイナミックな技術の成長はNode.jsの明るい未来を指示しています