Ah, the good old Design Patterns book, responsible for more atrocious over-abstracted, unreadable, hard to maintain Java code than anything else before or since.
I don't think that's fair. The driving point of that book was that developers needed a higher level language to talk about these patterns than simply at the code level, and showed people how to put together a vocabulary. Yes, it came with a library of sample patterns useful for Java developers, but they weren't egregious examples, nor were they the main point of the book. They were just taken to an extreme by people…
The most mentioned books on Stack Overflow
101–110 of 256 posts
Re: The most mentioned books on Stack Overflow
#102Although not directly development related. The most impressive book I've had the pleasure of reading is "Gödel Escher Bach: An eternal golden braid" (also known as GEB) from Douglas Hofstadter. It's hard to explain what it is about exactly, but it contains ideas and concepts from mathematics, computer science, philosophy and conscience. All of it is explained in very clear and interesting way. I can recommend it to a…
Re: The most mentioned books on Stack Overflow
#103Earlier quoted context omitted.
>, the good old Design Patterns book, responsible for more atrocious over-abstracted, This is a misunderstanding of the DP book. It would be similar to saying that the existence of TVTropes.com is responsible for terrible scripts of tv shows and movies. Or, the existence of the Oxford English Dictionary is responsible for bad novels and useless documentation. The DP book is a catalog (to gain awareness) and not a che…
> This is a misunderstanding of the DP book. That may be, but it's a very common misunderstanding of the book by junior developers who read the book as a list of recipes to use anywhere they might be applicable. Is it the book's fault that it's understood this way? I don't know. Regardless, the book + this persistent understanding and use of it are, as grabcocque says, "responsible for more atrocious over-abstracted,…
Re: The most mentioned books on Stack Overflow
#104Although not directly development related. The most impressive book I've had the pleasure of reading is "Gödel Escher Bach: An eternal golden braid" (also known as GEB) from Douglas Hofstadter. It's hard to explain what it is about exactly, but it contains ideas and concepts from mathematics, computer science, philosophy and conscience. All of it is explained in very clear and interesting way. I can recommend it to a…
Fun book. Hofstadter actually doesn't like computers, apparently: this is in the record, and I've heard him mention that fact multiple times. He just likes playing with ideas.
Re: The most mentioned books on Stack Overflow
#105Re: The most mentioned books on Stack Overflow
#106It's a great intro to concurrent programming with lessons that apply to virtually any high-level programming language. The chapter on the Java memory model is the best practical description of how languages map to multi-processor memory models I have ever read. (Chapter 16 in my edition.)
After reading this book it's easy to understand why concurrency features in other languages are necessary and what they are doing behind the scenes. Golang channels come lightly to mind.
Re: The most mentioned books on Stack Overflow
#107Earlier quoted context omitted.
I don't think that's fair. The driving point of that book was that developers needed a higher level language to talk about these patterns than simply at the code level, and showed people how to put together a vocabulary. Yes, it came with a library of sample patterns useful for Java developers, but they weren't egregious examples, nor were they the main point of the book. They were just taken to an extreme by people…
I think it's not fair to the authors. As you say they are clear about the patterns being examples. However, there seems to be something about the book or maybe patterns in general that make it seemingly impossible for many developers to not look for use cases of these patterns and start using them in cases that don't quite match. I lead a book club at a post employer where we read the GoF. I constantly emphasized tha…
Perhaps. But consider the background. People write code that isn't very well designed all the time. Maybe you just see these patterns misused so often because you can identify and name them. This is entirely the point behind the book – so we can identify these common patterns and talk about them at a higher level.
You've probably seen bad code where you can't describe what's wrong with it succinctly a lot too. But you don't have the option there of saying "oh, they've used a factory there when they shouldn't have" because the bad code doesn't follow a pattern that you know / have named. So all of those cases just get filed away in the fuzzy "bad code" category instead of being an example of a pattern being misapplied.
By definition, almost, something being a pattern is going to be something you see misapplied simply because that's part of the purpose of design patterns – so you can comprehend these problems better.
Re: The most mentioned books on Stack Overflow
#108Earlier quoted context omitted.
I don't think that's fair. The driving point of that book was that developers needed a higher level language to talk about these patterns than simply at the code level, and showed people how to put together a vocabulary. Yes, it came with a library of sample patterns useful for Java developers, but they weren't egregious examples, nor were they the main point of the book. They were just taken to an extreme by people…
That's very interesting. I haven't read Design Patterns. I have read A Pattern Language, and the Timeless Way of Building, by Christopher Alexander, and Patterns of Software by Richard Gabriel. It's been my understanding that Design Patterns had only a couple of dozen patterns (which turn up again and again in Java code) and prescribed their use generally, but if they're only examples of patterns , and programmers ar…
This is true, but it's an effect, not a cause of the book. "Design Patterns" is older than Java. They wrote it based on patterns they saw mainly in Smalltalk and C++.
> prescribed their use generally
Like "A Pattern Language", "Design Patterns" reads more descriptively than prescriptively. It's, "Here's a thing we saw people do. Here's what problem they were solving with it. Here's the context of their problem. Here's the positive and negative consequences."
Re: The most mentioned books on Stack Overflow
#109Earlier quoted context omitted.
What i listed was just an example but you can verify quickly - https://www.amazon.com/dp/0201633612/?tag=devbookscom20-20 without opening the actual book. And afaict - none of the patterns I listed are mentioned verbatim.
Seems like MVC is treated in GoF. http://blog.iandavis.com/2008/12/what-are-the-benefits-of-mv...
Re: The most mentioned books on Stack Overflow
#110Although not directly development related. The most impressive book I've had the pleasure of reading is "Gödel Escher Bach: An eternal golden braid" (also known as GEB) from Douglas Hofstadter. It's hard to explain what it is about exactly, but it contains ideas and concepts from mathematics, computer science, philosophy and conscience. All of it is explained in very clear and interesting way. I can recommend it to a…
I heard a story from an AI professor a few years ago, who had an interesting heuristic for picking grad student applications to trash: if it mentions GEB, off it goes into the circular file. Fun book. Hofstadter actually doesn't like computers, apparently: this is in the record, and I've heard him mention that fact multiple times. He just likes playing with ideas.
Why?