u++の備忘録

【書籍メモ】実践Node.jsプログラミング|第1章 Node.js に、ようこそ!

www.shoeisha.co.jp

この章で扱う概念

  • サーバサイド開発に、なぜJavaScriptが重要なのか
  • ブラウザはJavaScriptを使って、どのようにI/Oを処理するのか
  • サーバ上のNodeは、どのようにI/Oを処理するのか
  • DIRTyアプリケーションとは何を提供するのか。どうしてそれがNodeに適しているのか
  • 基礎的なNodeプログラムのサンプル

サーバサイド開発に、なぜJavaScriptが重要なのか

  • サーバサイドもJavaScriptを用いることで、開発者はただ一つの言語でWebアプリケーションが書ける。クライアント開発とサーバ開発の間で発生するコンテクストの切り替えが削減される。
  • JavaScriptはさまざまなNoSQLデータベースで使われている言語なので、それらのインターフェースとの相性が良い。

など

ブラウザはJavaScriptを使って、どのようにI/Oを処理するのか

  • イベント駆動で、入出力でブロックしない(非同期I/Oを使う)
  • ほかに対話処理があっても、そのページで別の要求が発生しても、それに応答できる
  • この仕組みによって、クライアントに素早く反応し、そのページにおける大量のインタラクションを処理できる

サーバ上のNodeは、どのようにI/Oを処理するのか

  • ブラウザの場合と似ている
  • Nodeではほとんど常に入出力がメインのイベントループの外側で実行されるので、サーバは高い効率と応答性を保つことができる

DIRTyアプリケーションとは何を提供するのか。どうしてそれがNodeに適しているのか

  • DIRT = Data-Intensive Real-Time(大量のデータを扱うリアルタイムな)
  • DIRTyアプリケーションには、同時に利用する数多くのユーザに対して、ほとんど即時に応答できる性能が必要だから

基礎的なNodeプログラムのサンプル

var fs = require(‘fs’);
fs.readFile(‘.resource.json’, function (err, data) {
    console.log(‘data’);
})

まとめ

  • JavaScriptの上に構築されている
  • イベント駆動で非同期
  • データ量の多いリアルタイムアプリケーションのために構築された