Top critical review
Good Book, but Failed to Meet High Expectations
Reviewed in the United States on February 10, 2019
My coworkers tended to describe this book as the New Testament. Working as a Rails Developer, I had heard Sandi Metz mentioned in passing at least a dozen times before I started reading this book. This book was offered to me with a very high set of expectations, and I do not feel that those expectations were entirely merited.
My reading experience suffered from three key aspects:
(1) Like any author, Metz had to choose some kind of raw material for her examples. She chose... biking (ahem, cycling). This carries a lot of baggage on the West Coast—something akin to choosing horseback riding or fine wines. The decision to use cycling as the cultural center of the book left a really bitter taste in my mouth. The examples felt unapproachable and niche. It's easy to think about the Inheritance pattern that attends the animal, the dog and the golden retriever. It is more than a little self absorbed to think that most of your readers are going to get out of bed for discussions about tape color, recumbent mountain bikes and chain sizes.
(2) Metz uses sentence structure that feels overly complicated. The comparison that comes to mind is Aristotle. There were a large number of sentences that I needed to reread. I can only imagine what a slog this book would be for an ESL reader.
(3) The spacing and visual style of the code examples were unattractive and unapproachable. This book is six years old but looks like it was written in 1992.
The wisdom in this book is absolutely worthy of a 5-star review and I am a stronger engineer for having read it. For engineers working with Ruby, I am not sure that there is a better resource for learning OOP design patterns. That said, this is not the Bible of OOP for developers in all languages. If you are a Swift or Kotlin or C++ developer, look elsewhere.