Hands-On Reactive Programming in Spring 5を読んだ(序章)

2021-01-01T12:43:41

Hands-On Reactive Programming in Spring 5を読んだ(序章)

これです

本記事では、各章にわけて読書感想文を記載します。
序章自体には中身が無いため、各章の紹介や選んだ理由を記載しておきます。

読み終えたリスト

読み終えた章に関して、記事がかけたらこちらにリンクしておきます。

きっかけ

業務でマッシュアップAPIの開発・運用を行っているのですが、ほとんど知識ゼロでノンブロッキングなSpringWebFluxを導入したいわく付きの代物になっています。

自分自身、1年あまりこいつと付き合っているので、おおよそノンブロッキング理解した気でいるのですが、実のところちゃんと勉強してないなというのが気がかりでした。
そこで、どう勉強するもんかなと思って調べてみたのですが、どうにもこれは日本語で手に入る情報が限定的で、体系的に手に入る知識というものがありません。

で、いくらか洋書を眺めてみてこれが良さそうなので手にとってみました。500P超あるので、、そもそも和書でもそこまで読むことないのに読みきれるのか疑問ですが。

購入の決め手

  • Reactive全般だけでなく、その前提にある非同期プログラミングに関しても触れていること
  • Reactiveプログラミングだけでなく、データベースへの適応などReactiveプログラミングを行う上での課題にも触れていること
  • SpringBoot2を使った構築、Reactorに関して取り扱っていること
  • クラウドを前提にした分散システムに関して取り扱っていること

章ごとの概要について

序章に記載されている、大まかに何を学ぶかに関しての記載を紹介します。

1,2,3章

Reactiveなプログラミングを学ぶ上で知っておくべき前提知識の紹介や、現在のReactiveライブラリの基礎になった非同期プログラミングに関して触れています。

Reactiveプログラミングのか帰る問題点やそれに関する解決のアプローチ、その過程で策定された標準仕様、イニシアチブに関しても紹介されています。

たとえば、Reactive Streamsというものはノンブロッキングにおける”バック・プレッシャー”処理の標準を決めるイニシアチブであると説明されます。
バック・プレッシャーという用語に関してはこちらのサイトの用語集が役に立ちます。

リアクティブ宣言 用語集

4,5,6章

Reactive Streams仕様の完全実装に焦点を当て、WebFluxのコアでもあるReactorの実装について説明します。
そこから、SpringBoot2でリアクティブを実現する方法と、その具体的なライブラリであるSpringBootWebFluxに関して取り上げます。

7章

Reactiveなデータベースアクセスに関して紹介されます。SQL, NoSQLに関して触れているようです。

8章

SpringCloudStreamsのReactiveな機能に関して中心に紹介されています。分散システム上のスケールアップで遭遇する問題とその解決に関して触れられているようです。

9章

Reactiveアプリケーションのテストという題名通り、必要となる基本的なテストに関して触れています。
Spring5 Test及びProjectReactorTestモジュールに関して紹介されるようです。

10章

Reactiveアプリケーションに関してデプロイとモニタリングに関して解説されています。

序章を読んだ所感

個人的にメインになるのは4,5,6章になるかなと思っていますが、Reactive+DBは全く知見のない部分なので体系的な知識が得られるというのは楽しみなところがあります。

1,2,3章に関してはその必要性を完全には理解できませんが、どうしてReactiveでなければならないのか、という知識は、これはノンブロッキングなビジネスケースだろう、というシーンの説得材料として意味を持つでしょう。