Design Patterns: Elements of Reusable Object-Oriented Software
Thumbnail 1Thumbnail 2

Design Patterns: Elements of Reusable Object-Oriented Software

4.3/5
Product ID: 71472754
Secure Transaction

Description

Design Patterns: Elements of Reusable Object-Oriented Software

Reviews

4.3

All from verified purchases

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**G

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**S

Four Stars

The book was as expected and it’s arrived earlier

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.

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.

S**E

A must-have book for every software engineer

If your goal is to learn how to write code that is maintainable and not just functional, this book is an ideal choice. It provides valuable insights and techniques for coding professionally, ensuring that your skills extend beyond mere functionality to creating maintainable and efficient solutions.

C**8

A Must-Have for Object Oriented Programmers

This book is widely known as one of THE foundational books for Object Oriented Programming and design. It’s an excellent read and should be read at least once by every aspiring programmer.

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.

F**O

Tutto ok niente da segnalare.

Materiale arrivato conforme e in ottimo stato

F**S

Todo correcto.

El libro era el que pedí y me llegó antes de tiempo. Tuve un problema con uno de los vendedores que me trajo un libro distinto y lo está gestionando Amazon ahora mismo, pero lo volví a comprar con otro vendedor y la verdad que perfecto.Es la última edición y su contenido es muy bueno. Muy útil para la ingeniería del Software. Bastante contento

Common Questions

Trustpilot

TrustScore 4.5 | 7,300+ reviews

Ravi S.

I loved the variety of products available. Will definitely shop again.

2 months ago

Rajesh P.

Customer service was outstanding when I had questions about the product.

2 days ago

Shop Global, Save with Desertcart
Value for Money
Competitive prices on a vast range of products
Shop Globally
Serving millions of shoppers across more than 100 countries
Enhanced Protection
Trusted payment options loved by worldwide shoppers
Customer Assurance
Trusted payment options loved by worldwide shoppers.
Desertcart App
Shop on the go, anytime, anywhere.
C$5502

Duties & taxes incl.

Nicaraguastore
1
Free Shipping

with PRO Membership

Free Returns

30 daysfor PRO membership users

15 dayswithout membership

Secure Transaction

Trustpilot

TrustScore 4.5 | 7,300+ reviews

Sneha T.

Received my product in pristine condition. Great service overall.

1 month ago

Yusuf A.

Fantastic experience overall. Will recommend to friends and family.

1 month ago

Design Patterns Elements Of Reusable Object Oriented Software | Desertcart Nicaragua