Context & Why I read this book
This is the fourth book I finished in 2021. My motivation was to get my hands dirty with Combine, Apple's new Functional Reactive Programming framework.
What the book is about
The book is about getting to know Combine and is comprised of 13 chapters:
Chapter 1 - Introducing Functional Reactive Programming
Chapter 2 - Exploring publishers and subscribers
Chapter 3 - Transforming publishers
Chapter 4 - Updating the User Interface
Chapter 5 - Using Combine to respond to user input
Chapter 6 - Using Combine for networking
Chapter 7 - Wrapping existing asynchronous processes with Futures in Combine
Chapter 8 - Understanding Combine’s Schedulers
Chapter 9 - Building your own Publishers, Subscribers, and Subscriptions
Chapter 10 - Debugging your Combine code
Chapter 11 - Testing code that uses Combine
Chapter 12 - Driving publishers and flows with subjects
Chapter 13 - Where to go from here
Additionally, some source code and example projects are provided.
One lesson I am taking from it
I especially liked the sections on backpressure management (controlling flow by signaling a subscriber’s readiness to receive elements) which, in my opinion, was explained better than in other resources on the topic I know of. After this book, I am confident that I understood this concept better.
Reading Recommendation / Who should read this?
I recommend this as a cheap, quick & dirty introduction to the subject. It is no theoretical deep dive but supposed to be a hands-on practical book. Still, in my opinion, it did not live up to its name. It was actually more theoretical than I had hoped for.
1 ⭑ — Abysmal; extremely bad. Couldn't / wouldn't finish. No one should waste his time on this!
2 ⭑— Very bad; skipped part of it; skimmed most of it.
3 ⭑⭑ — Bad, but forced me to finish; close to no nuggets to be found.
4 ⭑⭑ — Rather bad; finished but definitely would not give it a re-read.
5 ⭑⭑⭑ — Modest; a few nuggets; reading recommended in certain circumstances
6 ⭑⭑⭑ — OK; the average read. Tangible weaknesses, but recommended with some reservations
7 ⭑⭑⭑⭑ — Good read, despite minor weaknesses; generally recommended
8 ⭑⭑⭑⭑ — Very good; would recommend nearly without restriction
9 ⭑⭑⭑⭑⭑ — An outstanding work; worthwhile to be read twice or more often; a definitive recommendation
10 ⭑⭑⭑⭑⭑ — A work of genius; should be required for everyone