3 ms·
The Gang of Four book is terrible. The explanation are very unclear (often because of excessive abstraction, even in the description and discussion). It's been
by norswap 9y ago
The Gang of Four book is terrible. The explanation are very unclear (often because of excessive abstraction, even in the description and discussion).
It's been a long time so my memory is hazy on its particular sins, but I've vowed never to touch it again. I never understood what anyone saw in that book (except that it was one of the first book on the topic of design patterns).
- geezerjay 9y ago> The Gang of Four book is terrible. I don't agree. It's a seminal book which, in spite of having been released about 2 decades ago, is still required reading. The book also is well suited as a reference due to their clear explanations, descriptions, and use-cases.
- simon83 9y agoI always thought I was too dumb to understand the Gang of Four book. I thought everyone else must be so much smarter than me, because everyone praised this book. I really had trouble getting a clear picture in my head of the ideas, concepts and how it all fits together, due to the, as you say, excessive abstraction. I guess it was mostly due to my inexperience in software design in general. I haven't tried to read it again since then, but I'm sure by now I'd at least understand some of the words in there :) So I wouldn't recommend it for beginners, but I think even experienced developers could still learn something new.
- mcv 9y agoI had the same thing. Fortunately there are other books that explain design patterns in a clearer way, but I still didn't quite see the point at the time. Clearly design patterns are important, and I should master them, right? But then I switched from Java to Ruby, and half of the design patterns were completely irrelevant. And I had other problems for which I didn't have appropriate design patterns. I think the Gang of Four book's target audience is far narrower than it's often been interpreted. It's meant for intermediate C++ programmers. People who have already run into a number of these problems that C++ doesn't really handle well, and now here's a book that helps you around those limitations. I guess it also works well for older Java versions, but it's not universal. Many patterns are completely irrelevant for some languages, because those languages have easier ways to do that. Many languages have other shortcomings that are not handled in that book. Maybe there's another target audience for that book: language designers. Design your language so nobody needs these patterns. Have built-in constructs that handle this stuff in an easy way for the programmer.
- watwut 9y agoI found it easy to understand and I knew nothing about small talk (examples were in smalltalk). I found it helpful - it allowed me to think and talk about structures in more explicit way, so problem solving got easier. I think it should be read when you already have some experience with project that has some logic in it (e.g. not crud and also not frontend - frontend requires entirely different structures imo) where you had to make decisions about what goes where. It cease to be abstract then (or your brain adjusted to thinking in more structural way).