Thanks for purchasing the MEAP of Simple Object Oriented Design. I’m really happy you’re curious about my thoughts on object-oriented design!
You’ll quickly see that my main goal with this book isn't to discuss what a perfect design or architecture looks like. After almost 20 years of trying to achieve perfection, I don’t believe in it that much anymore. Real-life problems always come up with ways to break up whatever great design idea you had. Coming up with the perfect design might also be too expensive, and while designing is fun, we do it because we want to deliver software that works and that’s easy to evolve. Instead, you’ll see that we’ll be talking a lot about pragmatic design.
What I learned over the past years is that the complexity of our code will keep growing if we don’t do anything to prevent it. It grows not because we write bad code, but because our systems keep getting more complex. This book is all about principles and patterns that I applied over the years so that I could keep the overall complexity of my design under control.
I divided this book into six chapters, each dedicated to a different type of complexity I believe we should keep under control as much as we can: