その本の「はじめに」には、著者の「伝えたいこと」がギュッと詰め込まれています。この連載では毎日、おすすめ本の「はじめに」と「目次」をご紹介します。今日は末次章さんの『 ブラウザ内DBによるシングルページWebアプリの高性能化手法 』です。
【はじめに】
本書は、シングルページWebアプリケーション(以下SPAと略)を大幅に高性能化するブラウザ内DB「PouchDB」について解説します。すべてのフロントエンドエンジニアにお勧めします。
最近のWebアプリ開発はReactやVueなどのフレームワークの普及に伴い、SPAが一般的になってきました。SPAは、従来サーバーで行ってきた画面のHTML生成や入力チェックなどの処理をブラウザへ分散することで、高速で快適な操作性を実現しています。
しかし、実際には多くの利用シーンで課題が残っています。
- データベースにアクセスすると、サーバーからの応答待ちが発生する
- サーバーのデータ変更が表示中の画面にリアルタイムに反映されない
- オフライン状態(通信圏外など)で、データベースへアクセスできない
いずれの課題も、処理だけでなくデータもブラウザへ分散すれば解決できそうです。しかし、データを分散すると、サーバーのデータ変更をブラウザへ反映したり(下り方向の同期)、逆方向のブラウザのデータ変更をサーバーへ反映したり(上り方向の同期)する仕組みがなければ、データに致命的な不整合が発生する恐れがあります。つまり、データを分散するためにはデータ同期機能が不可欠です。
ブラウザ内DBであるPouchDBは、サーバー用DB「CouchDB」と組み合わせてデータ分散とデータ同期の両方を実現します。
1. サーバーのデータをブラウザに分散できる
2. サーバーのデータ変更をブラウザに反映できる(下り方向の同期)
3. ブラウザのデータ変更をサーバーに反映できる(上り方向の同期)
4. オフライン状態でブラウザ内DBを利用できる
5. サーバーのデータ変更をリアルタイムに表示できる(下り同期機能の利用)
6. 自動リトライを行うアップロードができる(上り同期機能の利用)
このようにPouchDBは、SPAの課題を抜本的に解決して高性能化します。いわば、SPA開発の「ゲームチェンジャー」と言えます。本書では、PouchDBの実装方法をサンプルコードを操作して、挙動を確認しながら解説します。
末次 章
【目次】









