November 2020
Beginner to intermediate
536 pages
6h 42m
Japanese
「5章 HTTPサーバとHTTPクライアント」、「6章 リアルタイムWebアプリケーション」で作成したToDo管理アプリケーションでは、ToDo一覧をアプリケーションのコードの中のオブジェクトとして管理してきました。この場合、ToDo一覧はアプリケーションを実行するNode.jsプロセスのメモリ上にしか存在しません。一度アプリケーションを停止すれば、アプリケーション実行中にToDo一覧に対して適用してきた変更はすべて消えてしまいます。また、clusterモジュールを使ってアプリケーションをマルチプロセス化(「4章 マルチプロセス、マルチスレッド」参照)したときに、複数プロセス間でToDo一覧を共有するのも難しくなります。
データを永続化したり、複数プロセス間で簡単に共有したりするには、Node.jsプロセスとは独立したデータストレージが必要になります。本章ではデータストレージとして一般的ににどのようなものがあるかを紹介し、いくつかのデータストレージについてそれをNode.jsでどのように扱うか、実際にToDo管理アプリケーションに組み入れながら学びます。
本章では複数種類のデータストレージを扱うコードを書くことになりますが、実装のコストを最低限にするため、データストレージを操作する箇所以外は同じコードを使い回します。コードを効率的に使い回すため、データストレージに対する操作をインタフェースとして抽象化し、データストレージごとにこのインタフェースの実装を用意します。使い回したいアプリケーションのメインのコードでは直接データストレージを操作する処理は書かず、この抽象に依存することで、データストレージ操作の実装の置換だけで簡単にデータストレージを切り替えられるようにします( ...