おととい発売された RxJava リアクティブプログラミング、 Amazon から背表紙が裂けた悲しい状態で到着し商品交換依頼を Amazon に出しつつ、本をナナメ読みしてたら休日が終わってしまった今日この頃、みなさまいかがお過ごしでしょうか。
さて、本の内容がなかなか良い内容な雰囲気だったので軽く感想とともにアフィリエイトリンクを貼ってみんなにふんでもらって金儲けがしたいなぁとか思ったので、感想文を書きました。
あ、あと私そんなに Rx サイコーみたいな人間ではないので... 念のため。(とはいえ iOS アプリ開発では RxSwift が一番よさそうっぽい気がする)
Rx 系のライブラリというと、まずリアクティブプログラミングとは何かについて、オタクは嬉しそうに早口で語り始めます。だいたい領域外の人間の理解なんて御構い無しの言説を垂れ流してくる方が多いですよね。この本の第 1 章では、初見の方に必要のない部分についてはどんどん後回しにして、押さえるべきキーワードをピンポイントで押さえてあり、かつ実際に動くコードを提示した簡潔で適切な例示により基本的なライブラリのふるまいなどがわかりやすくまとまっています。RxJava 1 系と 2 系の根本的な違いについては、普段 RxJava を使ってない(RxSwift を使ってます)自分にはなるほどなぁと思わせてくれる内容でした。Reactive Streams や RxJava の基本的な仕組みについてもわかりやすいシーケンス図とコード、解説があってよかった。その後は実際に RxJava を使ったコードとそのふるまいの解説が載っていて、基本的に Rx 系ライブラリは「まず使ってみてふるまいを見てから理解したほうが学習しやすい」と思っている自分の考え方にマッチしていてよかった。1 章読んで、写経すればだいたいみんなライブラリ使えるようになるのでは...?(ホントか?) Rx 系の経験がないかたでも 3 時間あれば読んでコード動かせるボリューム感だと思いますのでトライしてみてください。
Rx の柱の一つである Observable の背後に潜む、push 型 Observer パターンについてしっかりと解説されていて、とてもわかりやすい。私もむかしこのあたりのことについて記事にまとめたり、発表したりしました(唐突なリンク)。
また非同期処理の部分のスケジューラまわりについては Java でどうなっているのか気になっていたので、簡潔にまとまってて、とてもありがたかった。
第 4 章オペレーターまわりはだいたい知ってるのでまあ読まなくていっかみたいな雰囲気でいま 5 章を読んでる。Rx 系のライブラリをこれから使おうという方は公式のチュートリアルとか見つつ、Qiita の適当な記事みるくらいならこの本が良いのではとか思ってたりします。
現場からは以上です。
ちなみに自分は基本的に RxJava は触ったことありませんが、悲しいことに Swift という大変すぐれている言語を書いている今日この頃ですので RxSwift はそこそこ触っているほうだし、ソースコードも 8 割くらい読んだりしてます。なので、ライブラリ自体はほぼ触っていない RxJava 本とはいえ、スラスラ読めました(だいたい知ってる内容だった)。
ウェブ界隈でエンジニアとして労働活動に励んでいる @gomi_ningen 個人のブログです