
New book Review: Keep it by your side - This, of all the software engineering textbooks, is the one you should keep on your desk. It's perfectly balanced between being a reference resource you can keep on flicking back to, and a more detailed textbook that's worth reading in detail. Review: All as expected - All as expected


| Best Sellers Rank | 2,500,781 in Books ( See Top 100 in Books ) 867 in Online Shopping 915 in Web Design Applications 4,202 in Introduction to Programming |
| Customer Reviews | 4.3 out of 5 stars 487 Reviews |
M**L
Keep it by your side
This, of all the software engineering textbooks, is the one you should keep on your desk. It's perfectly balanced between being a reference resource you can keep on flicking back to, and a more detailed textbook that's worth reading in detail.
E**N
All as expected
All as expected
C**C
This book is 20 years old. Is it still worth reading? Yes!
Design patterns (the method) are a foundational part of modern CS and software engineering. Design Patterns (the book, aka GOF) is what kicked it all off. But the book is more than 20 years old now, and it shows. Is it still relevant? Is it still worth reading? With that question in mind I picked up the book again for the first time in many many years. In short, yes it is still worth reading. Definitely so. Designing class structures is a significant part of most major software engineering projects, and doing it well reduces friction throughout the project, now and in future iterations. Whilst modern reactive, functional techniques subsume some of GOF or make knowledge of it unnecessary for the application developer, the API's and libraries these tools are built on almost always use patterns from GOF, as do other tools and libraries. Knowing those patterns makes using the libraries easier. What's more, the book clearly makes the case and explains the value of concepts common to good software engineering, object oriented and otherwise. Decoupling, encapsulation, clearly defined responsibilities and others are all explained. Of course, patterns are no panacea. You can make a good argument that design patterns are only necessary because of weaknesses in the languages used, that the need for them disappears in modern languages (and old, good, good-old languages like Common Lisp): "The shape of a program should reflect only the problem it needs to solve. Any other regularity in the code is a sign, to me at least, that I'm using abstractions that aren't powerful enough-- often that I'm generating by hand the expansions of some macro that I need to write." (Paul Graham) The Strategy pattern is a clear example of this, wrapping up functions in an object - and only necessary in languages which do not treat functions as first class entities in their own right. And using Singleton is generally accepted as a terrible idea. (As an aside, Visitor is also sometimes presented as another unnecessary pattern whose motivation disappears if you use a good language - Scala, Groovy and C# come to mind, Wikipedia lists more. I'm less convinced by this claim, multiple dispatch is complex and easy to misunderstand. Explicit use of a visitor takes more typing but may be clearer.) The book has clearly dated in other ways. The diagrams aren't UML (the book predates it!). The book depends on customs instead of what are now language-level features like interfaces. The heavy use of inheritance and subclassing is antiquated. A (to modern ears) obscure focus on micro-optimisation, warning that some patterns require instantiation of more objects and that this could be a performance concern. There is no consideration of concurrency and dependency injection doesn't get a look in. The absence of testing, although use of the patterns often presciently enables it much more than the "un-patterned" alternatives. So there you have it: GOF is a hero, complete with tragic flaws. Well worth reading, but read it with the knowledge that a lot has changed in the last 20 years. Modern languages make some patterns redundant. There are other problems that patterns don't address. But for better or worse, I still find myself thinking in patterns most days of the week.
K**D
Poor qualitu print.
I honestly wouldnt know how good the content is but I am sure it's great. What isn't great is the qualitu of the "paperback" version. If paperback meant really cheap printed from india. Given that the book says for distribution in sub continent of india only, I am assuming it is being sold here illegally. Again the print quality is awful. The paper is so thin you can see the otherside with minimal effort. The margins are no existent. Some pages have been printed at an angle and some were stuck together.
M**M
I'm not sure why I received a version of the ...
I'm not sure why I received a version of the book published in India. It has a massive warning on the front saying: "Circulation of this edition outside of Indian subcontinent is UNAUTHORIZED". Hopefully the content of the book is still the same as the English version.
M**S
Four Stars
The book was as expected and it’s arrived earlier
J**N
Don’t buy this book!
This is not a newer edition. It’s just a really bad reprint of the original book that’s not meant to be sold outside of India. The quality of printing and pages is terrible.
G**E
Everything ok
Everything ok
G**V
Nice book
Nice Book
G**E
The price isn’t good for the quality of the physical product
The knowledge of the book is great; but, for the price that I was charged, the quality of the paper and binding is beyond bad. I recommend against this paperback version if you can avoid it. My book literally falls apart after studying it for 3 weeks. The book wasn’t what I’d call cheap, for the quality I would pay $10 for, I paid $35 (missing the ‘poor’ quality disclaimer on the cover, For $25 more dollars I could have got the better version. I’m disappointed by this purchase.
F**O
Tutto ok niente da segnalare.
Materiale arrivato conforme e in ottimo stato
C**Y
I liked it. I understood about 40% of it
A book I had always wanted to read. I read it. I liked it. I understood about 40% of it.
Trustpilot
3 weeks ago
1 week ago