Robert reviewed A Philosophy of Software Design by John Ousterhout
Designing software is about managing complexity
5 stars
After reading "Clean Code" as a teenager, I always run into (experienced) people who were strongly opposed to its strict opproach. Although I heard that criticism, I never got a good explanation why that is, apart from "it's bloats the code". With taking about the depth of interfaces and how shallow interfaces add complexity, this books provides a framework to explain that point.
Designing software is about managing complexity, and this book is a great explanation of that, including red flags and guidelines to practically do it.
While I don't agree with every single point made, the book provides an useful consistent philosophy and practical advice. I recommend it to everyone who cares about the design of software.