レバテックフリーランスのサイトに当サイトが紹介されました!

【2023年】Node.jsの本「最新・人気のおすすめの10冊」

JavaScriptでサーバーサイド実装が可能な「Node.js」。

Node.js向けには豊富なModule(パッケージ)が提供されており、それらはクライアントアプリなどでも使われ、Node.js環境は今非常に幅広く使われる環境となっています。

こちらでは、そんな活用の幅も広いNode.jsの参考書を人気とともに紹介していきます。

発売したて・発売予定の新書をピックアップ
技術書は情報の鮮度も重要、人気ランキングの前に新しい書籍もチェックしておきましょう。




 

 

Kindle Unlimited 1ヶ月無料

kindle_unlimited_sale
 
  • 1ヶ月無料で読み放題
  • 1ヶ月以内でも解約可能
  • 解約後も1ヶ月まで利用可


 

Node.jsの参考書「最新の人気ランキング 10冊」

今人気の「Node.jsの参考書」をランキングで一覧したのが以下です。

(2025/01/23 12:08 更新)
Rank製品価格
1
Node.js超入門[第4版]
発売日 2023/07/06
掌田津耶乃 (秀和システム)
総合評価
(4)
3,300円
2,673円
2,970円
2
実践Node.js入門―基礎・開発・運用
発売日 2023/01/27
伊藤 康太 (技術評論社)
総合評価
(4.1)
3,278円
3,212円
3,030円
3,278円
3
ハンズオンNode.js
発売日 2020/11/17
今村 謙士 (オライリージャパン)
総合評価
(4.2)
4,070円
(+123pt)
4,070円
4,070円
4
Node.jsフレームワーク超入門
発売日 2022/05/28
掌田津耶乃 (秀和システム)
総合評価
(4.3)
3,080円
2,772円
2,772円
3,080円
5
Node.jsデザインパターン 第2版
発売日 2019/05/18
Mario Casciaro, Luciano Mammino (オライリージャパン)
総合評価
(3.9)
4,620円
(+139pt)
4,620円
4,620円
6
Node.js超入門 第3版
発売日 2020/09/10
掌田津耶乃 (秀和システム)
総合評価
(4.1)
3,350円
2,851円
3,168円
3,520円
7
3,740円
3,740円
8
入門Node.jsプログラミング
発売日 2019/09/25
Jonathan Wexler (翔泳社)
総合評価
(3.5)
3,740円
(+113pt)
3,366円
1,980円
3,740円
9
作りながら学ぶWebプログラミング実践入門
発売日 2020/01/28
掌田津耶乃 (マイナビ出版)
総合評価
(3.6)
2,948円
2,653円
2,948円
2,948円
10
実践Node.jsプログラミング Programmer's SELECTION
発売日 2014/06/10
Mike Cantelon, Marc Harter, T.J. Holowaychuk, Naithan Rajlich (翔泳社)
総合評価
(3.6)
384円
3,564円
3,960円
605円
 

以降でおすすめ・注目の本をピックアップしていきます。

Kindle版のある本なら試し読みも可能。大概目次まで見れるので、概要もつかめるので、サンプル試読がおすすめです。

 

Node.jsの本 人気ランキング/5冊詳細

以下が「Node.jsの本」人気ランキングと人気の5冊詳細です。

ランキングはAmazonの書籍売上ランキングに基づき毎日更新されています。

(2025/01/23 12:08 更新)
Rank製品価格
1
Node.js超入門[第4版]
発売日 2023/07/06
掌田津耶乃 (秀和システム)
総合評価
(4)
3,300円
2,673円
2,970円
2
実践Node.js入門―基礎・開発・運用
発売日 2023/01/27
伊藤 康太 (技術評論社)
総合評価
(4.1)
3,278円
3,212円
3,030円
3,278円
3
ハンズオンNode.js
発売日 2020/11/17
今村 謙士 (オライリージャパン)
総合評価
(4.2)
4,070円
(+123pt)
4,070円
4,070円
4
Node.jsフレームワーク超入門
発売日 2022/05/28
掌田津耶乃 (秀和システム)
総合評価
(4.3)
3,080円
2,772円
2,772円
3,080円
5
Node.jsデザインパターン 第2版
発売日 2019/05/18
Mario Casciaro, Luciano Mammino (オライリージャパン)
総合評価
(3.9)
4,620円
(+139pt)
4,620円
4,620円
 

Node.js超入門[第4版]

Node.js超入門[第4版]
(著)掌田津耶乃
発売日 2023/07/06
総合評価
(4)
(2025/01/23 12:08時点)
2020/7刊「Node.js超入門 第3版」の改訂版。対象読者はJavaScriptの入門書を読み終え、かつNode.js経験のない人。既存の入門書などで挫折した人もついていけるよう手取り足取り教える内容。

※この商品は固定レイアウトで作成されており、タブレットなど大きいディスプレイを備えた端末で読むことに適しています。また、文字列のハイライトや検索、辞書の参照、引用などの機能が使用できません。
 
内容サンプル

(引用元Amazon)

 
Users Voice
全体的に説明が分かりやすくて良かった。
本に掲載されているコードは一応メモ帳形式でダウンロードできるようになっているが、(例えばChapterごととかに)完成された動作するプログラムとして、ダウンロードできるようにして欲しいです。
そうでないと、何らかのエラーでプログラムが動作しない時、どこまでは動いてどこまでは動かないと判別がとても難しい時があるからです。 (参考:楽天)

↓全て表示 ↑少なく表示
 
内容サンプル

(引用元Amazon)

 
  

実践Node.js入門―基礎・開発・運用

実践Node.js入門―基礎・開発・運用
(著)伊藤 康太
発売日 2023/01/27
総合評価
(4.1)
(2025/01/23 12:08時点)
(概要)

Node.jsの入門書です。Node.jsは今やWebアプリケーション開発には欠かせない存在です。

本書には、Node.jsで実際にアプリケーション開発をはじめるための知識がまとまっています。基礎知識、環境構築、重要文法、非同期、CLIツール開発、Expressを用いたサーバーサイドの開発やフロントエンド(React)との連携などNode.jsの全体像が学べます。

現場で活躍する第一人者が、Node.jsのアプリケーション開発の指針やノウハウを教えます。


(こんな方におすすめ)

・Node.jsを学びたいエンジニア

・JavaScriptへの基本的な知識のあるエンジニア、サーバサイドもある程度しっかりやりたい人

・他言語でサーバサイド開発の経験があり、Node.jsも身につけたいエンジニア


(目次)

1 はじめてのNode.js

  1.1 Node.jsの言語としての特徴

  1.2 フロントエンド/バックエンドの両方に必要となったNode.js

2 JavaScript/Node.jsの文法

  2.1 開発環境の導入

  2.2 JavaScript基礎

  2.3 JavaScriptと継承

  2.4 JavaScriptとthis

  2.5 ES2015以降の重要文法

3 Node.jsとモジュール

  3.1 CommonJS modules

  3.2 ECMAScript modules

  3.3 モジュールの使い分け

  3.4 標準モジュール(Core API)

  3.5 npmと外部モジュールの読み込み

4 Node.jsにおける非同期処理(フロー制御)

  4.1 同期処理と非同期処理

  4.2 Callback

  4.3 Promise

  4.4 async/await

  4.5 ストリーム処理

  4.6 AsyncIterator

  4.7 エラーハンドリングのまとめ

  4.8 Top-Level Await

5 CLIツールの開発

  5.1 Node.jsの開発フロー
  5.2 引数の処理

  5.3 ライブラリ導入とCLIへの落とし込み

  5.4 Node.jsのLint

  5.5 Node.jsのテスト

6 ExpressによるREST APIサーバー/Webサーバー

  6.1 Expressの基礎と導入

  6.2 Expressの必須機能

  6.3 包括的エラーハンドリング

  6.4 データベース連携

  6.5 ビューテンプレート

  6.6 静的ファイル配信

  6.7 ルーティングとファイル分割の考え方

  6.8 ファイル分割の実践

  6.9 ハンドラーのテスト

  6.10 AsyncIteratorのテスト

  6.11 失敗時のテスト

  6.12 ハンドラー単位の分割とテストしやすさ

  6.13 Node.jsアプリケーションのデプロイ

  6.14 Node.jsとDocker

  6.15 Clusterによるパフォーマンス向上

7 フロントエンド/バックエンドの開発

  7.1 フロントエンドとバックエンドをまとめて開発する

  7.2 モノレポ(Monorepo)

  7.3 アプリケーションの構成

  7.4 フロントエンド開発の考え方

  7.5 Reactの基本機能

  7.6 ブラウザイベントの処理

  7.7 コンポーネントの分割

  7.8 API から取得した値を表示する

  7.9 APIをコールして値を更新する

  7.10 Client Side Routing(クライアントサイドのルーティング)

  7.11 フロントエンドアプリケーションのデプロイ

  7.12 フロントエンドのテスト

8 アプリケーションの運用と改善

  8.1 パッケージのバージョンアップ

  8.2 モノレポで共通のライブラリを管理する

  8.3 アプリケーションの実運用における注意点

  8.4 パフォーマンス計測とチューニング

↓全て表示↑少なく表示
 
Users Voice
Node.jsの実践開発についてのノウハウが凝縮されおり、初心者が中級者にステップアップする為に価値ある一冊です。
テクニカルライターでは書けない、現場のエンジニア経験を踏まえての実践ノウハウが詰まっています。
例えば、非同期処理にしても、「イベントループをいかに長時間停止させないか意識することが重要」と実践向けのポイントを示した上で、どうすべきなのかを具体的に解説しています。
多めのコラムも実践向けです。 (参考:楽天)

↓全て表示 ↑少なく表示
 
  

ハンズオンNode.js

ハンズオンNode.js
(著)今村 謙士
発売日 2020/11/17
総合評価
(4.2)
(2025/01/23 12:08時点)
Node.jsの入門書。対象読者は、フロントエンド開発の知識はあってもサーバサイド開発は知らないエンジニアや、他言語の経験はあってもNode.jsは触ったことがないプログラマー。
本書ではターミナルのプロンプトにコマンドを入力してその反応を確認したり、簡単なスクリプトをNode.js環境で実行したりしながら、Node.jsプログラミングの基本からWebアプリケーションの開発、テスト、デプロイまでをハンズオン形式で学びます。また、コードの背景にある設計思想や、プログラムの挙動の仕組みについてもしっかり掘り下げます。
本書のゴールは、読者がNode.jsの全体像を掴み、業務レベルでのアプリケーション開発に対応可能な知識を身につけることです。
 
目次
イントロダクション
非同期プログラミング
EventEmitterとストリーム
マルチプロセス、マルチスレッド
HTTPサーバとHTTPクライアント
リアルタイムWebアプリケーション
データストレージ
ユニットテストとデバッグ
デプロイ
パッケージ管理
Node.jsとJavaScript標準
付録A Node.jsのインストール
付録B JavaScriptとコンパイル

↓全て表示↑少なく表示
Users Voice
・Node.jsがどの標準(ECMAScript, Web)を遵守しているのか、どういった実装/デザインパターンが実装されているのかをハンズオンを交えながらが学ぶ事が出来る。
・記載されている実装/デザインパターンはNode.jsに閉じず、他の言語でも採用されているものについても記載があるため、「あの言語での書き方はこのパターンに準拠していたんだな」という気付きも得られた。
・自分にとっては、2〜4章が最も意義深かった。
・登場したパターン
- イベントループ
- コールバック, Promise
- ジェネレータ, async/await
- Observerパターン:EventEmitter
- ストリーム
- マルチプロセス:clusterモジュール
- マルチスレッド:worker_threadsモジュール
- スレッドプール
- ポーリング, ロングポーリング
- SSE(Server Sent Events)
- WebSocket:Socket.IO, ws
・C10K(クライアント1万台)問題
・P155:構造化クローンアルゴリズム
・P164:I/Oの並行処理にはイベントループ、高負荷のCPU処理にはマルチスレッド
・P170:スレッドセーフ
・P182:ミドルウェア関数
・P187:プロキシを介したHTTPリクエスト(X-Forwardedヘッダ)
・P200:useEffectメソッド(副作用の記述)
・P236:開放/閉鎖原則(open-closed principle=OCP)
・P258:プレースホルダ
・P270:ORM, データベースマイグレーション
・P289:振る舞い駆動開発(Behavior Driven Development=BDD)
・P299:テストダブル[スパイ, スタブ, モック]
・P331:ブラウザ上でのテストコード実行[Karma, Puppeteer, jsdom] (参考:honto)

↓全て表示 ↑少なく表示
1章 イントロダクション
 省略
2章 非同期プログラミング
 JavaScriptの関数はほぼコールバックでイベントループがメインスレッドでそこからI/O処理などはコールバックに柾される。
 しかしコールバックのネクストが深くなりすぎる(コールバックヘル)ことを解決するために導入されたのがPromiseである。ほかにも非同期処理を記述するものとしてジェネレータとasync/awaitがある。
3章 EventEmitterとストリーム
 わからない
4章 マルチプロセス、マルチスレッド
 プロセスを実行させるのはかなり簡単。スレッドはかえって効率が悪くなるのでスレッドプールを使ったほうがよい。
5章 HTTPサーバとHTTPクライアント
 Expressフレームワークを使ったWebアプリを作っていく。題材はTODOアプリ。
6章 リアルタイムWebアプリケーション
 サーバからクライアント側にHTTP接続を保持したままデータ更新を続けることでリアルタイムを実現するSSEという方法とWebSocketによる方法がある。
7章 データストレージ
 ファイルによるデータストレージ、データベース(SQlite)によるデータストレージ、NoSQLデータベース(LEVELDB)
8章 ユニットテストとデバック
 省略
9章 デブロイ
 省略
10章 パッケージ管理
 省略
11章 Node.jsとJavaScript標準
 CommonJSとESモジュールがいろいろと混ざっている理由がわかりました。
前の本JavaScriptハンズオンでJavaScript用語に慣れたけど、この本でさらにわからない用語が増えた。この本は入門書と書かれているけどこのレベルで入門書だったら中級書、上級書だと読むことがかなり困難になりそう。 (参考:honto)

↓全て表示 ↑少なく表示
・Node.jsがどの標準(ECMAScript, Web)を遵守しているのか、どういった実装/デザインパターンが実装されているのかをハンズオンを交えながらが学ぶ事が出来る。
・記載されている実装/デザインパターンはNode.jsに閉じず、他の言語でも採用されているものについても記載があるため、「あの言語での書き方はこのパターンに準拠していたんだな」という気付きも得られた。
・自分にとっては、2〜4章が最も意義深かった。

・登場したパターン
- イベントループ
- コールバック, Promise
- ジェネレータ, async/await
- Observerパターン:EventEmitter
- ストリーム
- マルチプロセス:clusterモジュール
- マルチスレッド:worker_threadsモジュール
- スレッドプール
- ポーリング, ロングポーリング
- SSE(Server Sent Events)
- WebSocket:Socket.IO, ws

・C10K(クライアント1万台)問題
・P155:構造化クローンアルゴリズム
・P164:I/Oの並行処理にはイベントループ、高負荷のCPU処理にはマルチスレッド
・P170:スレッドセーフ
・P182:ミドルウェア関数
・P187:プロキシを介したHTTPリクエスト(X-Forwardedヘッダ)
・P200:useEffectメソッド(副作用の記述)
・P236:開放/閉鎖原則(open-closed principle=OCP)
・P258:プレースホルダ
・P270:ORM, データベースマイグレーション
・P289:振る舞い駆動開発(Behavior Driven Development=BDD)
・P299:テストダブル[スパイ, スタブ, モック]
・P331:ブラウザ上でのテストコード実行[Karma, Puppeteer, jsdom] (参考:楽天)

↓全て表示 ↑少なく表示
 
著者略歴
今村謙士(イマムラケンジ)
Webアプリケーションエンジニア。学生時代は生物物理学の分野で、分子モータとして機能するタンパク質の研究に身を捧げるも、基礎研究のモチベーションを保つことに限界を感じSIerに就職、ソフトウェアエンジニアになる。その後Web業界に転職し、現在に至る(本データはこの書籍が刊行された当時に掲載されていたものです)
ハンズオンNode.js
発売日 2020/11/17
(2025/01/23 12:08時点)

  

Node.jsフレームワーク超入門

Node.jsフレームワーク超入門
(著)掌田津耶乃
発売日 2022/05/28
総合評価
(4.3)
(2025/01/23 12:08時点)
Node.jsでのWeb開発において「主要なフレームワークの使いみちや開発方法」「用途別にどれを使うのがベストか?」を解説。「これ一冊読めば、Node.jsの主要フレームワークが一通りわかる」という書籍です。

※この商品は固定レイアウトで作成されており、タブレットなど大きいディスプレイを備えた端末で読むことに適しています。また、文字列のハイライトや検索、辞書の参照、引用などの機能が使用できません。
 
内容サンプル

(引用元Amazon)

 
目次
1 Node.jsの基礎知識
2 Express+Prisma
3 Sails.js
4 AdonisJS
5 NestJS+TypeORM
6 Meteor
Users Voice
いろんなnodeのフレームワークを紹介している本書。紹介されているものですが、Nestjs以外は正直聞いたことがないフレームワークばかり。
Nodejsを採用している現場に行ったことがないので、そこまでJSに関する現場レベルを知らないっていうのもありますが、求人ぐらいは見たことあります。
NextjsやGatsbyは結構有名なので、そこの紹介もあっていいんじゃないかなと思いました。
Nodejsのフレームワーク選定を行う場合に役立つのかもしれませんが、網羅している訳ではないので、本書だけでは足りません。
正直この本を利用する場面というのがイメージできませんでした。 (参考:楽天)

↓全て表示 ↑少なく表示
買ってよかった。
何回も読み直してる。 (参考:楽天)

↓全て表示 ↑少なく表示
 
内容サンプル

(引用元Amazon)

 
著者略歴
掌田津耶乃(ショウダツヤノ)
日本初のMac専門月刊誌「Mac+」の頃から主にMac系雑誌に寄稿する。ハイパーカードの登場により「ビギナーのためのプログラミング」に開眼。以後、Mac、Windows、Web、Android、iOSとあらゆるプラットフォームのプログラミングビギナーに向けた書籍を執筆し続ける(本データはこの書籍が刊行された当時に掲載されていたものです)

  

Node.jsデザインパターン 第2版

Node.jsデザインパターン 第2版
(著)Mario Casciaro, Luciano Mammino
発売日 2019/05/18
総合評価
(3.9)
(2025/01/23 12:03時点)
Node/JavaScriptアプリの設計技法を、実際に手を動かしながら学ぶハンズオン形式の解説書。
本書では最初に、JavaScriptの大きな特徴でありながら多くの開発者にとって馴染みの薄い非同期処理(コールバックを用いた処理)についてその仕組みを詳しく説明するとともに主なデザインパターンを説明し、Node.jsの基礎を押さえます。
次に、ストリームや一般的なデザインパターンのNode.jsでの実装、Node.js専用のデザインパターンといった事柄を解説します。
最後に、ユニバーサルJavaScript、スケーラビリティ、Node.jsを使ったエンタープライズアプリの開発といったより高度なトピックを扱います。
中級以上のウェブ開発者を対象としています。バージョン11対応。
 
目次
Node.jsの世界へようこそ
Node.jsの基本パターン
コールバックを用いた非同期パターン
ES2015以降の機能を使った非同期パターン
ストリーム
オブジェクト指向デザインパターンのNode.jsへの適用
モジュールの接続
ユニバーサルJavaScript
特殊な問題を解決するためのパターン
スケーラビリティとアーキテクチャ
メッセージ通信と統合
ES2015以降のJavaScriptの主要機能

↓全て表示↑少なく表示
Users Voice
思っていたより早く配送されました。特に問題ありません。 (参考:YahooShopping)

↓全て表示 ↑少なく表示
注文して2日で届きました。
早く読みたかったので到着が早くて良かったです。 (参考:楽天)

↓全て表示 ↑少なく表示
Node.jsのシングルスレッド、ノンブロッキングI/Oによる独自のアーキテクチャを踏まえた実装における細かなコーディング作法からデザインパターンまでを学ぶことができる。
大規模開発のための整備されたコード設計、関数設計、クラス設計、さらには分散スケール環境でのアーキテクチャのデザインパターンまでを紹介してくれている。node.jsはv11.9.0に対応。
gitからソースコードを取得できるが、著書に記載されているソースコードだけでも処理の概要を把握できるよう配慮されているのがありがたい。
基本的に各チャプターごとにプロジェクトファイルが用意されpackage.jsonで必要関連ライブラリをバージョン指定されているので、フォルダ内でnpm install の一発で環境が揃うのはありがたい配慮だ。著書では、ライブラリの個別インストールのコマンドが表記されているが、上記を実行していれば特に必要はない。
※一部でグローバルインストールが別途必要なものあり
※redis, rabbitMQなどミドルウェアは、別途構築する必要あり
コードを追いながら、高度なアーキテクチャの技術を身に付けたい人向け。
Node.jsの中上級者向けに響く著作だと感じた。

-------------------
#注意点

8章 webpackをグローバルインストールする記載がされている> P255
バージョンを指定しないと最新版がインストールされ、著書と挙動が異なって検証ができ
なくなるので、以下のバージョンでインストールすること。(package.jsonにも記されているので確認できる。)
npm install webpack@1.12.14 -g
※package.jsonのwebpackと合わせる
他のnpmでグローバルインストールしているものは、package.jsonのバージョンに合わせたほうがいい

8章:sample12,13,14
P285 に実行コマンドにnode serverと記載されているが、コードに記載されたJSXを変換実行する必要があるので、babel-nodeまたは、babel-cliをかましてスクリプトを実行する必要がある。
例:./node_modules/babel-cli/bin/babel-node.js server

9章以降:
node-gyp系リビルド処理でpython2.7系が必要なケースもあり。
nvmで異なるnodeのバージョンが必要になるケースもあり
macで検証している場合は xcode, xcode toolを最新版にしておくこと

--------------------
#以下、内容メモ

1章:Node.jsの世界へようこそ

モジュールは小さく設計すべき
・コードを少なく
・機能を最小限
npmによってモジュールの依存地獄から解放
->パッケージが個別に依存モジュールを定義できる

ブロッキングI/O:
I/O処理は時間がかかる→サーバがブロッキングI/Oの場合、複数リクエストの場合は新たにスレッドを起こす必要がある。消費するメモリや、コンテキストスイッチのコストを考えると、効率は良くない。

ノンブロッキングI/O:
データの書き込み完了をまたずに一旦終了できる。
同一スレッドで、複数リソースを扱えるようになる。
イベントループでビジーウェイトせずに複数のI/Oを処理
並行性の扱いが単純になる。スレッドの競合、同期を考慮しなくて良い

・リアクタパターン
I/Oタスクのそれぞれにハンドラ(コールバック関数)を対応させるもの
コールバック関数を使用して、すべてのリソース処理を後回しにするようなプログラミン
グスタイル。

Node.jsのアーキテクチャ
libuv:node.jsのCライブラリで、OSに依存せず同じ手法でブロッキングI/Oを使える。
v8:GoogleによりChromeブラウザのために作られら高速効率的メモリ管理のJavaScriptエンジン
バインディング:libuvmやその他の低レベルの機能をラップし、JavaScriptで利用できる
ようにするための抽象化レイヤー
node-core:ハイレベルなNode APIを実装したJavaScriptライブラリ

2章:Node.jsの基本パターン

・コールバックパターン
同期プログラミングにおけるreturn文に相当。非同期プログラミングでは必須。
JavaScriptのクロージャを使うことで、コールバック関数内にその関数で生成された環境
を参照することができる。

関数によって同期、非同期で呼ばれるかの違いによって呼び出し元の実装も変わる。
関数内で分岐判定処理によって同期や非同期で値が返る仕様は思わぬバグを産む。
->どちらかに明示的に仕様を決める。

process.nextTick() イベントループで次まで関数の実行を遅延(先延ばし)してくれる。登録されたI/Oイベントの前に実行->nextTIck()の再帰呼び出しはI/O starvationに陥るケースがあるので注意。
setImmediate():登録されたI/Oイベントの後に実行

try catchでキャッチされない例外の補足方法
 process.on('uncaughtException',(err)=>{ //todo process.exit(1); }):

依存解決の仕組み:ロード元によて異なるモジュールのバージョンをロードする機能
循環参照の注意点:読み込む順番によって初期化されるモジュールが異なる問題が起きる

・モジュール定義におけるパターン
オブジェクト、コンストラクタ、関数のエクスポート
インスタンスのエクスポート

・オブザーバパターン
EventEmitterをつかって複数のオブザーバに対して通知を行う。
on, emit, return emitter P62
複数イベントを扱う、イベントの発生回数が予測できない場合に向いている。

コールバックと、EventEmitterを組み合わせた関数
glon(pattern, [option], callback).on('match', match => console.log(`${match}`))
コールバックは結果データを返すが、EventEmitter(`match`)で中間処理情報を通知する仕組み

3章:コールバックを用いた非同期パターン

コールバックのネストが幾つも重なる=コールバック地獄 p51
視認性が悪く、クロージャを解放し忘れるとメモリリークの原因にもなる
・クロージャを乱用しない
・if文にelseをかかず、returnでなるべく早く抜ける:ネストレベルを下げる
・コールバックを独立した関数で定義し、クロージャを使わない。
・一つの関数にネストしたコールバックを書かず、複数の関数に分割する
※クロージャ:自分を囲むスコープにある変数を参照できる関数:関数の内側の関数

逐次処理におけるコールバックの伝播
並行処理におけるコールバックの伝播

・並行処理:非同期でイベントループ内で並列数分インタリーブされ処理される。
マルチスレッドでないので特別な技術は必要ない。Nodeの強み。
完全に競合状態がないわけではない。複数タスク新しいファイルだった場合ファイル読み込み処理するケースで、複数タスクが同時に新しいファイルだと判定して、同じ処理をしてしまう場合がある。

同時実行数制限をした並行処理
キューを使った同時実行数制御

委譲:delegate

asyncライブラリを使用した逐次、並行処理、同時実行数を制御した並行処理
series:非同期逐次実行
eachSeries:配列要素を捜査して非同期逐次実行
each:並行eachSeriesからの移行に便利
eachLimit,mapLimit,parallelLimit,queue,cargo:同時実行数を制限した並行処理
前半の並行処理実装は、asyncライブラリで簡潔に置き換えられる

4章:ES2015以降の機能を使った非同期パターン

Promise:コールバックの欠点を補うために考案された。非同期処理の結果を表現するオブジェクト。callbackなどの橋渡しスタイルからの変更
Generator:functionの後ろに*を付加して宣言すれば、yieldにより処理を中断できる。
 非同期の制御フローを簡単に記述(yield, next()を活用)し、関数を一旦抜けたり、そこから再開できるようにする
coライブラリを利用したジェネレータベースの制御フロー
 async/awaitを使用した制御フローでGeneratorを使用することで複雑化した実装をシンプルにする。

5章:ストリーム

ストリームとバッファの違い
バッファ:データが全て揃ってからコールバック通知
ストリーム:データを受け取った時点で途中でもコールバック通知可能
巨大なデータも少ないリソースでやりとりできる。
ファイル転送後の解凍処理もチャンク単位で圧縮して転送し解凍することができる。
バイナリモード:チャンクの形でストリーム化する
オブジェクトモード:オブジェクトとしてデータを処理
・Readable:ソースを表現
 non-flowingモード:readableイベントにアタッチ、read()でバッファが空になるまで読み込む
 flowingモード:dataイベントにアタッチ、データがリスナーにプッシュされる
Readableストリームの実装:_read()は継承したReadable内部で呼ばれる
・Writable:データの行き先
writable.write でチャンク書き込み
writable.end で最後のチャンク書き込み
 バックプレッシャ:データが消費されるよりも速く書き込まれてしまう場合の対処
 Writableストリームの実装:_write()は継承したWritable内部で呼ばれる
・Duplex:ReadableかつWritableなストリーム、双方を継承しread(),write()を行う
・Transform:データ変換用 write -> read
・パイプを使ったストリームの接続
 unixでは、次のプログラムの入力として簡単に接続できる
echo Hello World! | sed s/World/Node.js/g
node.js -> pipe()で行う
・パイプ処理パターン
 Combinedストリーム:ストリームの合併
 ストリームのフォーク
 ストリームのマージ
 マルチプレクシングとでマルチプレクシング

6章:オブジェクト指向デザインパターンのNode.jsへの適用

・ファクトリ:
p152 模擬オブジェクトを返す(start:function{}, end:function{})
合成可能ファクトリ:ファイプラリstampit
・公開コンストラクタ
・プロキシ
データ妥当性検討、権限チェック、キャ種保存、遅延初期化など
応用:配列の仮想化
・デコレータ
・アダプタ
・ストラテジー
・ステート
 コンテクストの状態によって変化するストラテジーとして見れる
・テンプレート
具象クラスが定義された瞬時にアルゴリズムが決定される。ストラテジとの違いは、ストラテジは動的に変更が可能、テンプレートはクラスが定義された瞬間にアルゴリズムが決定する。
・ミドルウェア
 玉ねぎの皮のようにミドルウェアの層をつくり、順に層を呼び出し中心のアプリケーションのコアに到達させる。
・コマンド

7章:モジュールの接続

・シングルトンとしてモジュールを利用するパターン
 modele.exportsを活用
 require()関数呼び出し時にキャッシュされ、以降はキャッシュを返すため
->落とし穴がある。パッケージごとに異なるnode_modulesのパッケージを参照してしまう恐れあり:global変数で対応できるが、この方法は避けるべき。

・モジュール接続のためのパターン
require()でステートを持ったインスタンスへの依存をハードコードすることによる制限
 DI(依存性注入)のケース:Factoryパターンを活用して後からモジュールを指定する
 ->利点:dependencyから分離し再利用しやすくなる
  欠点:依存関係の把握が増加複雑化すると管理が大変
 サービスロケータ:DI同様、コンポーネント間の把握が難しくなる
 DIコンテナ:依存するもの以外の余計なサービスにモジュールを依存させなくできる
・プラグインの接続
 require()するだけで、プラグイン機能を付加できる実装:関数を変数に格納する手法とデコレータパターンを駆使して行う
 サービスロケータ、DIコンテナをつかった公開方法

8章:ユニバーサルJavaScript

サーバサイドとフロントエンドでのコード共有
Reactを使用したSPA(Single-Page-Application)の作成
・モジュールの共有
 UMDパターン:定型的なコードを沢山書かなければならない
 ES2015モジュール:サポートされていないブラウザに注意
・Webpackの導入
node用に作成したモジュールをブラウザ用に書き直してくれる
 ES2015で提供される機能を実装していても変換してくれる
・クロスプラットフォーム開発の基礎
 実行時コード分岐
 ビルド時コード分岐:Webpackの例
 ビルド時にモジュール置換:Webpackの例
 クロスプラットフォーム開発向けのデザインパターン
 ・ストラテジー、テンプレート:用途によって切り替え処理ができる
 ・アダプター:互換性を持たすようにアダプターで置換する
 ・プロキシ:サーバ側のモジュールをリモートプロキシで呼び出す
 ・オブザーバ:イベントを発生、受け取りのコンポーネントを抽象化
 ・DIとサービスロケータ:依存性注入時にモジュール入れ替えする
・React
サーバ内とクライアントでほぼ同じコードでのビューのレンダリングができる
 Nodeサーバでビューをレンダリングしてブラウザが受け取り表示可能=SPAを作成できる。
JSX:HTMLとDOMツリー表現の中間フォーマット的な位置付け
expressのstaticを利用してwebpackしたモジュールを読み込めるようにして、1度目はサーバでレンダリングし、以降はブラウザで再描画する仕組み
babel-cliでサーバサイドでJSX記述を残したまま、実行時変換起動させる方法
 Webサーバ(プロキシとして活用)、APIサーバとスケーラブルな構成のパターン

9章;特殊な問題を解決するためのパターン

・非同期に初期化されるもモジュールのrequire
ステートパターンを利用し実行リクエストをキューにため、非同期実行が完了してからキューのリクエストを実行する堅牢な作りの紹介
・非同期のバッチ処理とキャッシュの利用
・CPUバウンドなタスクの実行
setImmediateによるインタリーブ:cpuバウンドの処理のステップが完了するたびにイベントループに制御を戻す
マルチプロセスの利用:子プロセスへ移譲

10章:スケーラビリティとアーキテクチャ

複数プロセス利用、複数サーバ利用にしてスケールする
下記3つの観点でのスケールを考える。
 クローニング:アプリをn回クローニングして各インスタンスに1/nの処理をさせる
 サービスと機能による分割;機能、サービス、ユースケースで分割
 データパーティションによる分割:データの一部を各インスタンスが分担して担当
  水平分割、シャーディング
・クローニングと負荷分散
 モジュールcluster
 ・バージョン0.11.2以降からラウンドロビン方式の振り分け
 ・障害時の再起動(zero-downtime restart)の実装
 ・負荷分散
  ステートフルにしたいデータの共有問題
  ・共有メモリを利用した認証データの保存
  ・スティッキーな負荷分散(値判定で特定ノードへ割り振る)による特定なインスタンスへのマッピング
 ->問題点あり:インスタンスの代替が効かなくなる問題
  リバースプロキシによるスケーリング
 ・ロードバランサとして機能するリバースプロキシ
  ・URLリライト、キャッシング、SSLターミネーション
  ・nginxをロードバランサとしてバックエンドにnodeのwebサーバを稼働させたパターン
  サービスレジストリを活用し、最新の稼働サーバ情報を登録し、ロードバランサがその内容を参照するパターン
  ・nodeでの負荷分散装置の実装
  ピアツーピア負荷分散:ロードバランサの処理量に依存させない方法:その分、接続方法は複雑になる
・サービスと機能の分割
マイクロサービスアーキテクチャのパターン
 各サービスにデータ所有権があることがマイクロサービスアーキテクチャの特徴
 正しいレベルの分離を独立維持するために、データベースも分割する
 データベースを分割した分、システム全体の一貫性を維持するために、互いのデータを参照更新する多くの通信が必要になる。
 クラッシュ、バグ、互換性を破る変更をシステム全体に波及させないようにする。
 利点:
 ・再利用性向上
 ・スケールは、複数マシンに負荷分散。独立してスケール可能
 難点:
 ・管理すべきノードが増えると、統合、デプロイ、コード共有が複雑になる。
 ・APIオーケストレーション層で複数のマイクロサービスのAPIを実行し、データを集約、処理する。
 ・メッセージブローかを使ったケース;フロントエンドのリクエストを受け取ったマイクロサービスが、関連するマイクロサービスにメッセージブローカを通して処理を行う

11章;メッセージ通信と統合

分散アプリケーションを統合する手段
・共有ストレージを中央の調整器兼情報の保持器として使う。
・メッセージを使ってデータ、胃炎と、コマンドを各ノードに行き渡らせる

メッセージ通信
・非同期メッセージと送信キュー:SMSのようなもの
・ピアツーピアメッセージ通信
・ブローカを使ったメッセージ通信:プロトコル間のブリッジにも利用できる、ブローカ
が単一障害になるデメリットはある。

パブリッシュ/サブスクライブ(pub/sub)パターン
 分散オブザーバーパターンでもある
 ・ピアツーピア型Pub/Sub
 ・ブローカ型Pub/Sub
 メッセージブローカにredisを適用したチャットサーバの分散スケール
 ZeroMQを使ったピアツーピア型PubSubで分散処理するチャットサーバ
 サブスクライバに障害が起きても確実にメッセージを送信できるような永続サブスクライバの実現
 ・多くのメッセージキューシステムが採用しているプロトコル:AMQP
 ラビットMQを使用したAMQPによるチャットサーバ

パイプラインとタスク分散パターン
・ZeroMQのファンアウト/ファンインパターン
 ハッシュサムを総当たりでしてアルファベットの考えられるすべての組み合わせを照合
するシステムで実践
 ベンチレータ->ワーカー->シンク
・パイプラインとAMQPの競合コンシューマ
 競合コンシューマ;複数のコンシューマが同じキューをリッスンし、メッセージをファ
ンアウト分散する

リクエスト/リプライ・パターン
・相関識別子を使用した、リクエストとリプライの紐付けで、リクエスト順序に影響しない
実装方法

付録A:ES2015以降のJavaScriptの主要機能
let, const:変数定義
アロー関数:=> コールバック関数を簡潔化記述できる
class構文
オブジェクトリテラルの改善
MapとSet
WeakMapとWeakSet
テンプレートリテラル
etc...

以上。 (参考:楽天)

↓全て表示 ↑少なく表示
 
著者略歴
カッシャーロ,マリオ(Casciaro,Mario)
ソフトウェアエンジニア兼企業家。テクノロジーやサイエンス、オープンソースが大好き。ソフトウェア工学の修士号を取得後、IBMに入社。IBMではTivoli Endpoint Manager、Cognos Insight、SalesConnectなどの企業向け製品の開発に携わる。その後、注目のSaaS企業D4H Technologiesに移り、リアルタイムで緊急な運用が求められる、最先端技術を駆使した新製品の開発を率いた。現在は、自らが共同設立者でもあるSponsorama.comのCEOを務めている

マンミーノ,ルチアーノ(Mammino,Luciano)
1987年生まれのソフトウェアエンジニア。12歳のときにプログラミングを始めた。計算機科学の修士号を取得後、イタリアを中心に企業やスタートアップでフリーの開発者として働きながらウェブ開発のプログラミングスキルを磨く。Sbaam.comの共同設立者およびCTOとして3年間イタリアとアイルランドでスタートアップに勤務したあと、アイルランドの首都ダブリンに移り、Smartboxで上級PHPエンジニアとして働くことに決めた

武舎広幸(ムシャヒロユキ)
国際基督教大学、山梨大学大学院、カーネギーメロン大学機械翻訳センター客員研究員等を経て、東京工業大学大学院博士後期課程修了。マーリンアームズ株式会社代表取締役。主に自然言語処理関連ソフトウェアの開発、コンピュータや自然科学関連の翻訳、辞書サイトの運営などを手がける

阿部和也(アベカズヤ)
1973年頃よりFORTRAN、1980年頃よりBASICでプログラミングを始める。COBOL、PL/I、Cを経て、1988年頃よりMacintoshでCプログラミングを開始し、1990年にビットマップフォントエディタ「丸漢エディター」を発表。その後、C++によるMacOS9用ビットマップフォントエディタの開発にも従事した。一貫して文字と言語に興味をもっていたが、2003年より本業のかたわら病院情報システムの管理、開発に従事し、Perl、PHP、JavaScriptによるウェブアプリケーション開発、システム間情報連携、Moodleによるe-ラーニング開発などを行った(本データはこの書籍が刊行された当時に掲載されていたものです)

↓全て表示↑少なく表示

   

Node.jsの本 最新・高評価のおすすめの5冊

以下が「Node.jsの本」最新・高評価のおすすめの5冊詳細です。

(2025/01/23 12:08 更新)
Rank製品価格
1
Node.jsフレームワーク超入門
発売日 2022/05/28
掌田津耶乃 (秀和システム)
総合評価
(4.3)
3,080円
2,772円
2,772円
3,080円
2
ハンズオンNode.js
発売日 2020/11/17
今村 謙士 (オライリージャパン)
総合評価
(4.2)
4,070円
(+123pt)
4,070円
4,070円
3
Node.js超入門 第3版
発売日 2020/09/10
掌田津耶乃 (秀和システム)
総合評価
(4.1)
3,350円
2,851円
3,168円
3,520円
4
実践Node.js入門―基礎・開発・運用
発売日 2023/01/27
伊藤 康太 (技術評論社)
総合評価
(4.1)
3,278円
3,212円
3,030円
3,278円
5
Node.js超入門[第4版]
発売日 2023/07/06
掌田津耶乃 (秀和システム)
総合評価
(4)
3,300円
2,673円
2,970円
 

Node.jsフレームワーク超入門

Node.jsフレームワーク超入門
(著)掌田津耶乃
発売日 2022/05/28
総合評価
(4.3)
(2025/01/23 12:08時点)
Node.jsでのWeb開発において「主要なフレームワークの使いみちや開発方法」「用途別にどれを使うのがベストか?」を解説。「これ一冊読めば、Node.jsの主要フレームワークが一通りわかる」という書籍です。

※この商品は固定レイアウトで作成されており、タブレットなど大きいディスプレイを備えた端末で読むことに適しています。また、文字列のハイライトや検索、辞書の参照、引用などの機能が使用できません。
 
内容サンプル

(引用元Amazon)

 
目次
1 Node.jsの基礎知識
2 Express+Prisma
3 Sails.js
4 AdonisJS
5 NestJS+TypeORM
6 Meteor
Users Voice
いろんなnodeのフレームワークを紹介している本書。紹介されているものですが、Nestjs以外は正直聞いたことがないフレームワークばかり。
Nodejsを採用している現場に行ったことがないので、そこまでJSに関する現場レベルを知らないっていうのもありますが、求人ぐらいは見たことあります。
NextjsやGatsbyは結構有名なので、そこの紹介もあっていいんじゃないかなと思いました。
Nodejsのフレームワーク選定を行う場合に役立つのかもしれませんが、網羅している訳ではないので、本書だけでは足りません。
正直この本を利用する場面というのがイメージできませんでした。 (参考:楽天)

↓全て表示 ↑少なく表示
買ってよかった。
何回も読み直してる。 (参考:楽天)

↓全て表示 ↑少なく表示
 
内容サンプル

(引用元Amazon)

 
著者略歴
掌田津耶乃(ショウダツヤノ)
日本初のMac専門月刊誌「Mac+」の頃から主にMac系雑誌に寄稿する。ハイパーカードの登場により「ビギナーのためのプログラミング」に開眼。以後、Mac、Windows、Web、Android、iOSとあらゆるプラットフォームのプログラミングビギナーに向けた書籍を執筆し続ける(本データはこの書籍が刊行された当時に掲載されていたものです)

  

ハンズオンNode.js

ハンズオンNode.js
(著)今村 謙士
発売日 2020/11/17
総合評価
(4.2)
(2025/01/23 12:08時点)
Node.jsの入門書。対象読者は、フロントエンド開発の知識はあってもサーバサイド開発は知らないエンジニアや、他言語の経験はあってもNode.jsは触ったことがないプログラマー。
本書ではターミナルのプロンプトにコマンドを入力してその反応を確認したり、簡単なスクリプトをNode.js環境で実行したりしながら、Node.jsプログラミングの基本からWebアプリケーションの開発、テスト、デプロイまでをハンズオン形式で学びます。また、コードの背景にある設計思想や、プログラムの挙動の仕組みについてもしっかり掘り下げます。
本書のゴールは、読者がNode.jsの全体像を掴み、業務レベルでのアプリケーション開発に対応可能な知識を身につけることです。
 
目次
イントロダクション
非同期プログラミング
EventEmitterとストリーム
マルチプロセス、マルチスレッド
HTTPサーバとHTTPクライアント
リアルタイムWebアプリケーション
データストレージ
ユニットテストとデバッグ
デプロイ
パッケージ管理
Node.jsとJavaScript標準
付録A Node.jsのインストール
付録B JavaScriptとコンパイル

↓全て表示↑少なく表示
Users Voice
・Node.jsがどの標準(ECMAScript, Web)を遵守しているのか、どういった実装/デザインパターンが実装されているのかをハンズオンを交えながらが学ぶ事が出来る。
・記載されている実装/デザインパターンはNode.jsに閉じず、他の言語でも採用されているものについても記載があるため、「あの言語での書き方はこのパターンに準拠していたんだな」という気付きも得られた。
・自分にとっては、2〜4章が最も意義深かった。
・登場したパターン
- イベントループ
- コールバック, Promise
- ジェネレータ, async/await
- Observerパターン:EventEmitter
- ストリーム
- マルチプロセス:clusterモジュール
- マルチスレッド:worker_threadsモジュール
- スレッドプール
- ポーリング, ロングポーリング
- SSE(Server Sent Events)
- WebSocket:Socket.IO, ws
・C10K(クライアント1万台)問題
・P155:構造化クローンアルゴリズム
・P164:I/Oの並行処理にはイベントループ、高負荷のCPU処理にはマルチスレッド
・P170:スレッドセーフ
・P182:ミドルウェア関数
・P187:プロキシを介したHTTPリクエスト(X-Forwardedヘッダ)
・P200:useEffectメソッド(副作用の記述)
・P236:開放/閉鎖原則(open-closed principle=OCP)
・P258:プレースホルダ
・P270:ORM, データベースマイグレーション
・P289:振る舞い駆動開発(Behavior Driven Development=BDD)
・P299:テストダブル[スパイ, スタブ, モック]
・P331:ブラウザ上でのテストコード実行[Karma, Puppeteer, jsdom] (参考:honto)

↓全て表示 ↑少なく表示
1章 イントロダクション
 省略
2章 非同期プログラミング
 JavaScriptの関数はほぼコールバックでイベントループがメインスレッドでそこからI/O処理などはコールバックに柾される。
 しかしコールバックのネクストが深くなりすぎる(コールバックヘル)ことを解決するために導入されたのがPromiseである。ほかにも非同期処理を記述するものとしてジェネレータとasync/awaitがある。
3章 EventEmitterとストリーム
 わからない
4章 マルチプロセス、マルチスレッド
 プロセスを実行させるのはかなり簡単。スレッドはかえって効率が悪くなるのでスレッドプールを使ったほうがよい。
5章 HTTPサーバとHTTPクライアント
 Expressフレームワークを使ったWebアプリを作っていく。題材はTODOアプリ。
6章 リアルタイムWebアプリケーション
 サーバからクライアント側にHTTP接続を保持したままデータ更新を続けることでリアルタイムを実現するSSEという方法とWebSocketによる方法がある。
7章 データストレージ
 ファイルによるデータストレージ、データベース(SQlite)によるデータストレージ、NoSQLデータベース(LEVELDB)
8章 ユニットテストとデバック
 省略
9章 デブロイ
 省略
10章 パッケージ管理
 省略
11章 Node.jsとJavaScript標準
 CommonJSとESモジュールがいろいろと混ざっている理由がわかりました。
前の本JavaScriptハンズオンでJavaScript用語に慣れたけど、この本でさらにわからない用語が増えた。この本は入門書と書かれているけどこのレベルで入門書だったら中級書、上級書だと読むことがかなり困難になりそう。 (参考:honto)

↓全て表示 ↑少なく表示
・Node.jsがどの標準(ECMAScript, Web)を遵守しているのか、どういった実装/デザインパターンが実装されているのかをハンズオンを交えながらが学ぶ事が出来る。
・記載されている実装/デザインパターンはNode.jsに閉じず、他の言語でも採用されているものについても記載があるため、「あの言語での書き方はこのパターンに準拠していたんだな」という気付きも得られた。
・自分にとっては、2〜4章が最も意義深かった。

・登場したパターン
- イベントループ
- コールバック, Promise
- ジェネレータ, async/await
- Observerパターン:EventEmitter
- ストリーム
- マルチプロセス:clusterモジュール
- マルチスレッド:worker_threadsモジュール
- スレッドプール
- ポーリング, ロングポーリング
- SSE(Server Sent Events)
- WebSocket:Socket.IO, ws

・C10K(クライアント1万台)問題
・P155:構造化クローンアルゴリズム
・P164:I/Oの並行処理にはイベントループ、高負荷のCPU処理にはマルチスレッド
・P170:スレッドセーフ
・P182:ミドルウェア関数
・P187:プロキシを介したHTTPリクエスト(X-Forwardedヘッダ)
・P200:useEffectメソッド(副作用の記述)
・P236:開放/閉鎖原則(open-closed principle=OCP)
・P258:プレースホルダ
・P270:ORM, データベースマイグレーション
・P289:振る舞い駆動開発(Behavior Driven Development=BDD)
・P299:テストダブル[スパイ, スタブ, モック]
・P331:ブラウザ上でのテストコード実行[Karma, Puppeteer, jsdom] (参考:楽天)

↓全て表示 ↑少なく表示
 
著者略歴
今村謙士(イマムラケンジ)
Webアプリケーションエンジニア。学生時代は生物物理学の分野で、分子モータとして機能するタンパク質の研究に身を捧げるも、基礎研究のモチベーションを保つことに限界を感じSIerに就職、ソフトウェアエンジニアになる。その後Web業界に転職し、現在に至る(本データはこの書籍が刊行された当時に掲載されていたものです)
ハンズオンNode.js
発売日 2020/11/17
(2025/01/23 12:08時点)

  

Node.js超入門 第3版

Node.js超入門 第3版
(著)掌田津耶乃
発売日 2020/09/10
総合評価
(4.1)
(2025/01/23 12:08時点)
Webアプリ開発に使える言語はたくさんありますが、ビギナーが選ぶべき言語はなんといってもJavascriptです。そして、Node.jsというソフトを使うと、Javascriptでサーバーの開発もできるんです! 本書は、Webアプリ開発の核となるNode.jsの基本からフレームワークの使い方、アプリ作りまで手を動かしながら覚える入門書です。「Node.Js ver.14」「Express」「Sequelize」対応。巻末に、初心者も安心のJavaScript超入門も収録。

※この商品は固定レイアウトで作成されており、タブレットなど大きいディスプレイを備えた端末で読むことに適しています。また、文字列のハイライトや検索、辞書の参照、引用などの機能が使用できません。
 
内容サンプル

(引用元楽天Books)

 
目次
1 Node.jsの基本を覚えよう!
2 アプリケーションの仕組みを理解しよう!
3 Webアプリケーションの基本をマスターしよう!
4 フレームワーク「Express」を使おう!
5 データベースを使おう!
6 SequelizeでORMをマスターしよう!
7 アプリケーション作りに挑戦!
Addendum JavaScript超入門!

↓全て表示↑少なく表示
Users Voice
Javascriptを理解している人向けではあるが、Node.jsからExpressというフレームワークを用いたサーバーサイドプログラミングを体験できる良本。 (参考:YahooShopping)

↓全て表示 ↑少なく表示
Node.jsを学び始めるのにちょうど良い本だと思います。 説明も分かりやすく、スムーズに学んでいけると思います。 (参考:YahooShopping)

↓全て表示 ↑少なく表示
Node.jsについてわかりやすく乗っています。まだ全部はよんでいませんが、読みやすくて読んでいきたいと思います。 (参考:YahooShopping)

↓全て表示 ↑少なく表示
 
内容サンプル

(引用元楽天Books)

 
著者略歴
掌田津耶乃(ショウダツヤノ)
日本初のMac専門月刊誌「Mac+」の頃から主にMac系雑誌に寄稿する。ハイパーカードの登場により「ビギナーのためのプログラミング」に開眼。以後、Mac、Windows、Web、Android、iPhoneとあらゆるプラットフォームのプログラミングビギナーに向けた書籍を執筆し続ける(本データはこの書籍が刊行された当時に掲載されていたものです)
Node.js超入門 第3版
発売日 2020/09/10
(2025/01/23 12:08時点)

  

実践Node.js入門―基礎・開発・運用

実践Node.js入門―基礎・開発・運用
(著)伊藤 康太
発売日 2023/01/27
総合評価
(4.1)
(2025/01/23 12:08時点)
(概要)

Node.jsの入門書です。Node.jsは今やWebアプリケーション開発には欠かせない存在です。

本書には、Node.jsで実際にアプリケーション開発をはじめるための知識がまとまっています。基礎知識、環境構築、重要文法、非同期、CLIツール開発、Expressを用いたサーバーサイドの開発やフロントエンド(React)との連携などNode.jsの全体像が学べます。

現場で活躍する第一人者が、Node.jsのアプリケーション開発の指針やノウハウを教えます。


(こんな方におすすめ)

・Node.jsを学びたいエンジニア

・JavaScriptへの基本的な知識のあるエンジニア、サーバサイドもある程度しっかりやりたい人

・他言語でサーバサイド開発の経験があり、Node.jsも身につけたいエンジニア


(目次)

1 はじめてのNode.js

  1.1 Node.jsの言語としての特徴

  1.2 フロントエンド/バックエンドの両方に必要となったNode.js

2 JavaScript/Node.jsの文法

  2.1 開発環境の導入

  2.2 JavaScript基礎

  2.3 JavaScriptと継承

  2.4 JavaScriptとthis

  2.5 ES2015以降の重要文法

3 Node.jsとモジュール

  3.1 CommonJS modules

  3.2 ECMAScript modules

  3.3 モジュールの使い分け

  3.4 標準モジュール(Core API)

  3.5 npmと外部モジュールの読み込み

4 Node.jsにおける非同期処理(フロー制御)

  4.1 同期処理と非同期処理

  4.2 Callback

  4.3 Promise

  4.4 async/await

  4.5 ストリーム処理

  4.6 AsyncIterator

  4.7 エラーハンドリングのまとめ

  4.8 Top-Level Await

5 CLIツールの開発

  5.1 Node.jsの開発フロー
  5.2 引数の処理

  5.3 ライブラリ導入とCLIへの落とし込み

  5.4 Node.jsのLint

  5.5 Node.jsのテスト

6 ExpressによるREST APIサーバー/Webサーバー

  6.1 Expressの基礎と導入

  6.2 Expressの必須機能

  6.3 包括的エラーハンドリング

  6.4 データベース連携

  6.5 ビューテンプレート

  6.6 静的ファイル配信

  6.7 ルーティングとファイル分割の考え方

  6.8 ファイル分割の実践

  6.9 ハンドラーのテスト

  6.10 AsyncIteratorのテスト

  6.11 失敗時のテスト

  6.12 ハンドラー単位の分割とテストしやすさ

  6.13 Node.jsアプリケーションのデプロイ

  6.14 Node.jsとDocker

  6.15 Clusterによるパフォーマンス向上

7 フロントエンド/バックエンドの開発

  7.1 フロントエンドとバックエンドをまとめて開発する

  7.2 モノレポ(Monorepo)

  7.3 アプリケーションの構成

  7.4 フロントエンド開発の考え方

  7.5 Reactの基本機能

  7.6 ブラウザイベントの処理

  7.7 コンポーネントの分割

  7.8 API から取得した値を表示する

  7.9 APIをコールして値を更新する

  7.10 Client Side Routing(クライアントサイドのルーティング)

  7.11 フロントエンドアプリケーションのデプロイ

  7.12 フロントエンドのテスト

8 アプリケーションの運用と改善

  8.1 パッケージのバージョンアップ

  8.2 モノレポで共通のライブラリを管理する

  8.3 アプリケーションの実運用における注意点

  8.4 パフォーマンス計測とチューニング

↓全て表示↑少なく表示
 
Users Voice
Node.jsの実践開発についてのノウハウが凝縮されおり、初心者が中級者にステップアップする為に価値ある一冊です。
テクニカルライターでは書けない、現場のエンジニア経験を踏まえての実践ノウハウが詰まっています。
例えば、非同期処理にしても、「イベントループをいかに長時間停止させないか意識することが重要」と実践向けのポイントを示した上で、どうすべきなのかを具体的に解説しています。
多めのコラムも実践向けです。 (参考:楽天)

↓全て表示 ↑少なく表示
 
  

Node.js超入門[第4版]

Node.js超入門[第4版]
(著)掌田津耶乃
発売日 2023/07/06
総合評価
(4)
(2025/01/23 12:08時点)
2020/7刊「Node.js超入門 第3版」の改訂版。対象読者はJavaScriptの入門書を読み終え、かつNode.js経験のない人。既存の入門書などで挫折した人もついていけるよう手取り足取り教える内容。

※この商品は固定レイアウトで作成されており、タブレットなど大きいディスプレイを備えた端末で読むことに適しています。また、文字列のハイライトや検索、辞書の参照、引用などの機能が使用できません。
 
内容サンプル

(引用元Amazon)

 
Users Voice
全体的に説明が分かりやすくて良かった。
本に掲載されているコードは一応メモ帳形式でダウンロードできるようになっているが、(例えばChapterごととかに)完成された動作するプログラムとして、ダウンロードできるようにして欲しいです。
そうでないと、何らかのエラーでプログラムが動作しない時、どこまでは動いてどこまでは動かないと判別がとても難しい時があるからです。 (参考:楽天)

↓全て表示 ↑少なく表示
 
内容サンプル

(引用元Amazon)

 
   

Node.jsの本「Kindle Unlimited 読み放題 人気本ランキング」

「Kindle Unlimited」は、Amazonの定額本読み放題サービス。

最近はKindle Unlimitedで読める本もどんどん増えており、雑誌、ビジネス書、実用書などは充実のラインナップ。

以下がKindle Unlimitedで読み放題となるNode.jsの本の一覧です。

30日無料体験も可能なので、読みたい本があれば体験期間で無料で読むことも可能です。

(2025/01/23 12:09 更新)
Rank製品価格
1
980円
2
JavaScriptエンジニアのためのNode.js入門
発売日 2016/12/26
天田士郎
Kindle Unlimited対象
総合評価
(3.6)
350円
3
980円
4
320円
5
1,782円
6
はじめてのNode.jsプログラミング
発売日 2013/01/17
松尾 勇也
Kindle Unlimited対象
総合評価
(3.3)
99円
7
350円
8
540円
9
450円
10
600円
 

Node.js参考書「新書一覧(2021年、2022年刊行)」

IT技術・プログラミング言語は、最新情報のキャッチアップも非常に重要、すなわち新書は要チェック

ということで、2020年以降に発売したNode.js参考書の新書一覧(発売日の新しい順)が以下です。

(2025/01/23 12:09 更新)
製品価格
600円
Node.js超入門[第4版]
発売日 2023/07/06
掌田津耶乃 (秀和システム)
総合評価
(4)
3,300円
2,673円
2,970円
実践Node.js入門―基礎・開発・運用
発売日 2023/01/27
伊藤 康太 (技術評論社)
総合評価
(4.1)
3,278円
3,212円
3,030円
3,278円
600円
Node.jsフレームワーク超入門
発売日 2022/05/28
掌田津耶乃 (秀和システム)
総合評価
(4.3)
3,080円
2,772円
2,772円
3,080円
1,782円
980円
1,000円
600円
980円
 

おまけ:本より高コスパ?「Udemy Node.jsおすすめ講座」

UdemyではNode.jsを基礎から応用までトータルで学べる学習講座があります。

こちらが、セール時には2千円程度で購入可能で、講座によっては本よりコスパよく学習が可能です。

講座は、買い切り型ながら更新あり、質問可能、30日間返金も可能、という本以上の手厚いサポートがあるのが魅力。

以下の表が、Node.jsの学習講座例。セールの場合、かなりおすすめなのでぜひトライしてみください。

Udemyについては、以下のページでも詳しく紹介しているので覗いてみてください。

人気
Rank
学習コース評価
1
Node.jsで学ぶWebシステムとソフトウェア開発基礎!Node.js完全入門ガイド...
発売日 2022/10/02
受講者 8,756人
通常 10,000円
現在 10,000円
(4.6)
総評価数 794件
2
(4.5)
総評価数 661件
3
JavaScriptで学ぶWebアプリ開発の必須知識〜Node.js・Web API・Ajax・async/await〜...
発売日 2022/07/19
受講者 936人
通常 3,000円
現在 3,000円
(4.5)
総評価数 82件
4
3日でできる Node.js Webスクレイピング
発売日 2022/03/06
受講者 543人
通常 8,000円
現在 8,000円
(4.1)
総評価数 73件
5
Node.js + Express + MySQL で作る 安全な Webアプリケーション 実践講座...
発売日 2021/05/16
受講者 2,403人
通常 27,800円
現在 1,800円
(4.1)
総評価数 213件

 

関連:JavaScript、TypeScriptを学ぶ

以下ではNode.js活用のためにも基礎となる「JavaScript」「TypeScript」の書籍も紹介しています、合わせてのぞいて見てください。


 

いじょうでっす。

コメント

タイトルとURLをコピーしました