Bookshelf Classic: Design Patterns
To some degree, the "Gang Of Four" succeeded. They explored and reinforced a working vocabulary regarding software design such as Model View Controller, Singleton, and Factory. Unfortunately, they also promoted jargony and academic terms such as adapter which is better known as wrapper, observer for publisher/subscriber, and compositor and composition for formatting classes.
OOP, while still popular, is waning, yielding to both new styles such as functional or lambda programming, and to old styles such as procedural programming. I ran across a YouTube video by Brian Will, coder and instructor, arguing why OOP is bad. Philosophically, I don't go as far he does, but he makes compelling reasons why one should favor procedural over OOP. When I recall, more than once, the difficulty I faced when making a change to an OOP program without violating its encapsulation and overall design, I'm inclined to think he has a point.
Similarly, Linus Torvalds of Linux and Git fame, ranted on why C++ is a horrible language when someone mentioned Git would have been better written in C++ rather than C.
And so goes the usefulness of this book. The concerted effort of the "Gang Of Four" to lead a conversation in design, to make sense of object-oriented programming when it was newish, undeniably makes this book a classic. The book stumbles when it gets formal; the programmers I work with just don't talk this way.