Design Patterns: Elements of Reusable Object-Oriented Software by Erich Gamma
My rating: 0 of 5 stars
A classic in the field of computer science, this book describes how object-oriented software can be used to develop meaningful (and reusable) classes. It is written by the so-called “gang of four” affiliated with a working group at the University of Illinois. It has achieved notoriety for its assistance in helping programmers write code more effectively in languages like C++, SmallTalk, and (my current language) PHP. The book has started a large movement in identifying design principles that are inherent in all computer science problems.
The book reads like a catalog of class types. After an initial critique on the state of computer programming, it reads like a textbook and a reference manual to be used. It is academic, analytical, and brilliant. Obviously, the book is only for the serious programmer who aspires to master her/his trade. It is not for the casual programmer or even for the intermediate programmer. It does not hold the reader’s metaphorical hand as the book is perused. Instead, it provides data and analysis like a research paper. Of course, in such a style, wisdom is distilled into compact sentences.
I’ll be happy to put this book on my bookshelf at work and refer to it when designing software.