devgadgets official logo

Ruby

Why you should learn Object-Oriented Design Programming

DevGadget's Choice

Building software the right way is probably one of the hardest things you could try. The reason why I say this is simple. The abstraction model that you end up choosing might not be the same as another programmer. Then, it becomes imperative the need for knowledge, best practices, and of course, experience.

Object-Oriented Design Programming is a fascinating mental model. It promises to make your code easier to maintain and evolve than otherwise. I want to share with you why I think this book is a devgadget's choice. And why you shouldn't skip it in your learning journey if you are interested in getting better at programming. Let's examine everything I love about it.

My favorite chapters

  • Chapter 1 has all the OOD/OOP basics to get you jiggy with it. You will learn design principles like the SOLID acronym, DRY, to the Law of Demeter. Also, design patterns like Gang of Four (Gof), Erich Gamma, of the seminal works on patterns of Jon Vlissides.
  • Chapter 2 is also vital. It will teach you how to design classes with a single responsibility. But more important, how to decide what belongs in a single class.
  • Chapters 5 through 8 brings tons of cool things to the table. From how objects of different classes can play similar roles (duck typing) to classical inheritance, and how to combine simple, independent objects into larger, more complex ones, something usually called object composition.
  • Chapter 9 will take you to the testing universe. You will find out why Sandi says that Behavior Driver Development (DBB) and Test Driven Development (TDD) should be viewed as on a continuum, rather than alternate testing styles. You will also learn about dependency injection using classes, which is a hot common interview topic.

If you want to learn more about Sandi Metz, visit her website here.

book

Sign up for our newsletter

Subscribe to our awesome weekly articles, then twiddle your thumbs, it's good luck! 😎

We care about the protection of your data. Read our Privacy Policy

Share article

Company name

Making the world a better place one tech article at a time. Empowering developers all over the world and technology enthusiasts.

© 2020 Dev-Gadgets. All rights reserved.