『実践Node.js入門』
https://gyazo.com/f660baa9b7d4d9480f09f4e23fa881cb
2023/1/26
伊藤康太 著
https://www.youtube.com/live/bhzuj06Jv0E?feature=share&t=367
https://blog.koh.dev/2023-01-26-nodejs-book/
1 はじめてのNode.js
1.1 Node.jsの言語としての特徴
1.2 フロントエンド/バックエンドの両方に必要となったNode.js
Column TypeScript
Column Node.jsとブラウザで動作するJavaScriptの違い
2 JavaScript/Node.jsの文法
2.1 開発環境の導入
Column Node.jsの導入方法
2.2 JavaScript基礎
Column ObjectとJSON
2.3 JavaScriptと継承
Column classとどう向き合うべきか
2.4 JavaScriptとthis
2.5 ES2015以降の重要文法
Column Strictモード
3 Node.jsとモジュール
3.1 CommonJS modules
Column requireと分割代入
3.2 ECMAScript modules
3.3 モジュールの使い分け
3.4 標準モジュール(Core API)
Column モジュール内の特殊な変数
3.5 npmと外部モジュールの読み込み
Column yarnやpnpmとNode.js
4 Node.jsにおける非同期処理(フロー制御)
4.1 同期処理と非同期処理
4.2 Callback
4.3 Promise
4.4 async/await
Column Promiseと並行実行
4.5 ストリーム処理
4.6 AsyncIterator
4.7 エラーハンドリングのまとめ
4.8 Top-Level Await
Column Node.jsとio.js
Column async.jsを利用したフロー制御
5 CLIツールの開発
5.1 Node.jsの開発フロー
5.2 引数の処理
5.3 ライブラリ導入とCLIへの落とし込み
Column process.cwd()
Column shebang
5.4 Node.jsのLint
5.5 Node.jsのテスト
6 ExpressによるREST APIサーバー/Webサーバー
6.1 Expressの基礎と導入
6.2 Expressの必須機能
6.3 包括的エラーハンドリング
6.4 データベース連携
Column EventEmitter内のエラーハンドリング
6.5 ビューテンプレート
6.6 静的ファイル配信
Column script async/defer
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によるパフォーマンス向上
Column Node.jsとデータベース
7 フロントエンド/バックエンドの開発
7.1 フロントエンドとバックエンドをまとめて開発する
7.2 モノレポ(Monorepo)
7.3 アプリケーションの構成
7.4 フロントエンド開発の考え方
7.5 Reactの基本機能
7.6 ブラウザイベントの処理
Column Reactにおけるイベントとハンドラーの紐づけ
7.7 コンポーネントの分割
Column コンポーネントとフレームワーク
7.8 API から取得した値を表示する
Column ホットリロード
Column XMLHttpRequestからfetchへ
Column ProxyサーバーでAPIを集約する
7.9 APIをコールして値を更新する
7.10 Client Side Routing(クライアントサイドのルーティング)
7.11 フロントエンドアプリケーションのデプロイ
Column nginxでProxyサーバーを建てる場合
Column ReactのSSR
Column Next.js
7.12 フロントエンドのテスト
Column テストとmock
Column E2Eテスト
Column フレームワークの利用
Column Access-Control-Allow-Originヘッダーを付与する(CORS)
Column Node.js とモジュールの選び方
Column フロントエンドとバックエンドのJavaScriptの違い
Column ブラウザー操作自動化―Puppeteer
8 アプリケーションの運用と改善
8.1 パッケージのバージョンアップ
8.2 モノレポで共通のライブラリを管理する
8.3 アプリケーションの実運用における注意点
8.4 パフォーマンス計測とチューニング
Column SIGUSR2を使う理由