ISBN 9784873119236

ハンズオンNode.js

ハンズオンNode.js
著者
今村謙士
刊行
2020-11

概要

Node.jsの基礎から本番デプロイまでをハンズオン形式で体系的に習得する

想定読者

フロントエンド開発の経験はあるがサーバーサイドは未経験のエンジニア、または他言語の経験はあってもNode.jsは初めてのプログラマー

こんな人には向いていない

  • すでにNode.jsでWebアプリを本番運用しており、非同期処理や設計パターンの深堀りを求めている人には、全体的に入門〜中級の比重が大きい
  • Express/Fastify等の特定フレームワークに特化した学習を優先したい人には本書は Node.js 本体の仕組みを丁寧に扱う構成であり目的が合わない
  • 純粋なバックエンド開発経験者でNode.jsの立ち上げだけを素早くこなしたい人には、JavaScriptの歴史や基礎的な説明の比重が冗長に感じる可能性がある

読了後にできるようになること

  • イベントループ・コールバック・Promise・async/awaitの違いと使い分けを実際に動かして理解できる
  • EventEmitterとStreamsを使ったNode.js固有のI/O設計ができる
  • マルチプロセス・マルチスレッド(Worker Threads)によるCPU負荷分散の仕組みを実装レベルで理解できる
  • HTTPサーバー構築からリアルタイムWebアプリ(WebSocket等)の開発まで段階的に実装できる
  • PM2・Docker・GAEを使った本番デプロイの手順を一通り経験できる
  • ユニットテストとデバッグの基本的な手法をNode.jsプロジェクトで実践できる

本書のキー概念(章解説)

  • 第 1 章 Node.jsの基礎とECMAScript
  • 第 2 章 非同期プログラミング(イベントループ・コールバック・Promise・async/await) — Node.js理解の核心部分。他言語経験者が最初につまずく箇所を丁寧に扱っており優先度が高い
  • 第 3 章 EventEmitterとStreams — Node.js固有の設計思想が凝縮されており、この章を理解すると全体像が掴みやすくなる
  • 第 4 章 マルチプロセスとマルチスレッド
  • 第 5 章 HTTPサーバーとクライアント
  • 第 6 章 リアルタイムWebアプリケーション
  • 第 7 章 データストレージ(ファイルシステム・DB・NoSQL)
  • 第 8 章 ユニットテストとデバッグ — テストの章が終盤ではなくアプリ構築の後に置かれており、実装と検証をセットで学べる構成
  • 第 9 章 デプロイ(PM2・Docker・GAE)
  • 第 10 章 パッケージ管理(npm・Yarn)
  • 第 11 章 Node.jsとJavaScript標準(ESモジュール・WebAssembly)

ハイライト

  • Node.jsとExpressで何がNode.js本来の機能で、どこからがExpressが提供している機能なのかが整理できた。並行して読んでいたが良書だった。(Node.jsとフレームワークの責任範囲の切り分けという、初学者がつまずきやすい点が解消された実体験として有効な推薦理由)
  • 本書のゴールは、読者がNode.jsの全体像を掴み、業務レベルでのアプリケーション開発に対応可能な知識を身につけること。(本書が単なる入門にとどまらず、業務適用を最終目標に置いている点が明示されている)

外部からの言及

  • Express.jsと並行して学習する際に、Node.js本体とフレームワークの機能の境界線を明確にする書籍として参照されている。読了後の評価として良書との言及がある(qiita)

編集メモ

Qiita検索で直接引用した記事は1件(likes 4)にとどまる。楽天ランキング情報なし。Node.js入門書カテゴリでの存在感はあるが、外部シグナル数値は定番認定の閾値(Qiita 10件以上 / likes 200以上)を大きく下回る

読む前に押さえておきたいこと

  • JavaScriptの基本文法(変数・関数・オブジェクト・配列)の読み書きができること
  • コマンドライン操作(ターミナルでのファイル操作・コマンド実行)に慣れていること
  • npmを使ったパッケージインストールの経験があると序盤のセットアップでつまずきにくい

学習のコツ

  • 2章(非同期プログラミング)はNode.js学習全体の要となる章。他言語経験者でも軽視せず、コードを実際に動かしながら読むことで後続章の理解速度が上がる
  • 3章(EventEmitter/Streams)を読んだ後にNode.jsの公式ドキュメントを参照すると、なぜそう設計されているかの背景が掴みやすくなる
  • 9章(デプロイ)はGAEへの実際のデプロイ手順も含まれており、手元でAWSやGCPに試験デプロイしながら進めると吸収が速い
  • 公式GitHubリポジトリ(oreilly-japan/hands-on-nodejs)にサンプルコードとerrata情報があるため、コード実行前に一度確認しておくと詰まりが減る
出版社による内容紹介

Node.jsの基本からWebアプリの開発、デプロイまでを網羅! Node.jsの入門書。対象読者は、フロントエンド開発の知識はあってもサーバーサイド開発は知らないエンジニアや他言語の経験はあってもNode.jsは触ったことがないプログラマー。本書ではターミナルのプロンプトにコマンドを入力してその反応を確認したり、簡単なスクリプトをNode.js環境で実行したりしながら、Node.jsプログラミングの基本からWebアプリケーションの開発、テスト、デプロイまでをハンズオン形式で学びます。また、コードの背景にある設計思想や、プログラムの挙動のしくみについてもしっかり掘り下げます。本書のゴールは、読者がNode.jsの全体像を掴み、業務レベルでのアプリケーション開発に対応可能な知識を身につけることです。

この本がどの学習段階で役立つかは、 関連する ロードマップ から確認できます。

質問に答えるだけで、
あなたに合う専門書が見つかる

IT・デザイン・士業・医療・経理・教育・研究 ほか、あらゆる分野の専門書と 「読む順序」(学習ロードマップ)を収録。何を選べばいいか分からなくても、 いくつかの質問に答えるだけでたどり着けます。