kenju's blog

About Programming, Mathematics, Security and Blockchain

書評『Serverless Single Page Apps: Fast, Scalable, and Available』を読んで

購入した本

Serverless Single Page Apps: Fast, Scalable, and Available

Serverless Single Page Apps: Fast, Scalable, and Available

なぜ買ったか

  • 仕事で一部導入しているSPAへの知見を深めたかったから
  • 仕事で使用しているAWSサービスへの理解を深めたかったから
  • 本書で導入されている「Deploy First, Test First」で進めて行く開発手法が現代のWeb Developmentの流れに沿っており、開発手法から得られるものも多そうだったから

実際読んでどうだったか

「Chapter 1からいきなりデプロイ」スタイルの利点を再認識

「まず最初にデプロイ、本番環境で動かせる。自分の好きなところを少しずついじっていく」というスタイルは、Life is Tech!でも意識していた教育法。学習者にとっては最終形が見れる、モチベーションが維持できるなど、利点しかない。

その分、学習教材の提供側としては、「簡単に使えて、ある程度のプラットフォームをカバーしているデプロイスクリプト」を提供するなど、労力を必要とする初期準備が必要。いきなりの初学者が、バギーなデプロイスクリプトでつまづくのは避けたい。

「テストで継ぎ目をカバーする」

One way to create a testable application is to build “seams” into the design— in other words, clear boundaries where tests can easily invoke behavior, inspect output, and simulate interaction

Test Firstで進みつつ、カバレッジの高さを追い求めるのではなく、最低限必要なテストだけを書いて行くスタンス・方法論を丁寧に説明している点が非常に好感が持てる。

要するに、「SPAにおけるコスパの良いテストの書き方」を学べる。

ツール選定の巧みさ

フロントエンドのフレームワークは用いず、jQueryで押し切る。 テスティングフレームワークは日英両言語で調べても豊富な知見の出る、ある程度枯れたJasmineを採用している。

「Serverless」「SPA」という本書のタイトルだけ見ると「流行りの技術を詰め込んだだけ」だと言われるかもしれないが、逆にそれ以外の技術は枯れた技術選定をすることで、全体のバランスをとっていることがわかる。

AWS全くの初心者は少しだけ覚悟が必要

IAM Policyの作り方、LambdaやDynamoDB、S3の紹介は最低限。したがって、全くの初心者はそれら周辺知識も調べながら進めて行く必要がある。

逆に言うと、ある程度AWSを触ったことがある人にとっては、ほしい情報だけをコスパよく吸収できる(その分ページ数も少ない)優秀な情報源。AWS周りの詳細な説明を割り切っている点は本書の優れた特徴の一つである。

メモ

  • “FIRE-y Test Suite"すなわち"Fast, Informative, Reliable, and Exhaustive"という呼び方が存在するらしい