用語集
ここでは、本書の中で出てくるキーワードの中で、 SPA 開発が中心のかたには馴染みのないワードについて簡単な解説をまとめています。適宜詰まったときに参考としてください。(随時更新、わからないワードがあれば Issue を立てていただけると追加します)
Universal Application
Isomorphic JavaScript という単語を源流とする現代的なアプリケーションのスタイルのこと。クライアントサイドとサーバサイドなど、多くの環境で同じコードでアプリケーションが動くようなシステムのことを指す。
例えば Nuxt.js は、一部専用の分岐を用意する必要があるものの、殆どの場合は同じコードベースで SSR / SPA 両対応が可能となっている。
正規化
リレーショナルデータベースシステム(RDBMS)の文脈で利用されるデータの一元化管理のための理論。整合性を強固に維持しつつ、冗長さをなくすために一般に RDB の基礎知識として広まっている。
Firebase の Realtime Database など、 NoSQL と呼ばれる RDBMS に依存しないシステムには、あえて正規化を行わないことが好まれる場合もあり、この場合「非正規化」と呼ばれる。
PaaS
Platform as a Service の略称。アプリケーションを実行するための環境(プラットフォーム)をサービスとして提供しているものの総称。
本書では、 Google App Engine と Heroku について取り上げていますが、 Amazon や Microsoft、 IBM など多くのクラウド事業者がその環境を提供している。
BaaS
Backend as a Service の略称。Web アプリケーションやモバイルアプリケーションにおいて、バックエンドの機能とインフラストラクチャをまとめて提供しているものの総称。
本書では、 BaaS としてトップクラスの知名度と事例がある Firebase を利用して、サーバーレスのバックエンドのもとに、アプリケーションを開発するまでのサンプルとして取り扱っている。
テストカバレッジ
本書の 5 章で基本的な解説を行っている。自身の書いているソフトウェアがどれだけホワイトボックステストされているかを確認するための指標。百分率での割合で示すことが一般的となる。
「カバレッジ 80% 」であれば、全体の 8 割がテストされていることが、「カバレッジ 60%」であれば、全体の 6 割がテストされている事がわかる。
また、カバレッジの割合の計算手法は大きく 3 つあり、 C0, C1, C2 と呼ばれている。数字が大きいものほど厳密なテストがなされていることの保証となる。
本書で取り扱っているテストスイートである Jest では、 C0 に相当する statement coverage および、 C1 に相当する branch coverage がデフォルトで出力される設定となっている。
The Twelve-Factor
Heroku のエンジニアが提唱した、強力なソフトウェア開発のための方法論のこと。
Docker や Kubernetes などを始めとしたコンテナ化を行うにあたって重要な事項が一通りまとまっている資料となっており、クラウドフレンドリーな運用体制の構築のための基本的なエッセンスを吸収することができる。