DEV Community πŸ‘©β€πŸ’»πŸ‘¨β€πŸ’»

Cover image for The Reading Is - Design Patterns: Elements of Reusable Object-Oriented Software
William Ferreira de Paula
William Ferreira de Paula

Posted on • Updated on

The Reading Is - Design Patterns: Elements of Reusable Object-Oriented Software

πŸ“šThe Reading Is is a fortnightly series of articles about books that any developer should read, presenting the context they are written and why are important.

Technical Book Reference πŸ“–

Book: Design Patterns - Elements of Reusable Object-Oriented Software
Authors: The Gang of Four (Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides)
Publisher: Addison-Wesley
Subject: The more common design patterns at that time and ways to implement than, software engineering, software architecture, object-oriented programming, the first book to collect and publish design patterns.
Year: 1994

The Age of Noise

The Noise

πŸ“― At the begging of 1990s, there's too much noise about object-oriented programming, noise that persists to our days with some ideas like to "design the real world" or "create things as they are" that are myths, more marketing than reality, hordes of structured programmers leaned over stacks of books trying to learn how use objects, how to do object-oriented design and how to solve problems with this paradigm.

We wrote software with procedural languages that are practically extinct today like Basic, Clipper, Pascal, Cobol (desktop, since mainframe continue going well and beating languages like Java in performance) and C (C is not extinct and go very well, thank you) and we are migrating to this paradigm with languages like C++, Smalltalk, Object Pascal, and Java (at the middle of the 1990s that when I begin to learn to program).

Programing

In this context, people write rigid software, since many programmers had no experience or have experience in a different paradigm, relaying in they own solutions without proper standards or approaches to solving day to day problems, in other hand is an era of heavy analysis and heavy design in a world dominated by the waterfall with unrealistic schedules and unachievable deadlines.

Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides writes this book directed to developers that have some experience with object-oriented languages and object-oriented design, but are searching for solutions that can solve problems with documented and well-tested knowledge that aim for great reuse and flexibility, the book is not centered to target only very experienced programmers since he explains ways to implement patterns concisely.

The Design Patter Puzzle

It covers the three basics types of patterns, Creational, Structural and Behavioral, at that time Concurrency Patterns are not a priority to developers, because machines that use more than one processor are expensive and processors with more than one core are years a had, distributed computing are not a mainstream issue at that time too, covering the 23 classic design patterns that we know today, using examples in Smalltalk and C++ that can be used as a base and be written in any other object-oriented language.

Using an objective approach they explain what is a pattern, informing the reader about the problem that originates it, the solution approach to this problem and consequences of using this pattern, the book was published in 1994 and has a digital HTML version published in CD in 1997 (This is the edition I have entered in contact in the 1990s) that have the πŸ˜†fantasticπŸ˜† HD resolution of 800x600.

The Object-Oriented Paradigm

Is a recommended read to developers that want to understand design patterns, their meanings and how implemented then, is a piece of history of our area and a simple essay of practicality allied with ingenuity, as everything in life design patterns attract criticism of many people but without a doubt, they change our way to write code and improve our abilities to solve problems in a way that any developer can rely on simple solutions to well-known problems.

Attributions

Noise - Photo by Pierre Bamin on Unsplash
Code - Photo by Markus Spiske on Unsplash
Puzzle - Photo by Gabriel Crismariu on Unsplash

Top comments (0)

Thank you.

Β 
Thanks for visiting DEV, we’ve worked really hard to cultivate this great community and would love to have you join us. If you’d like to create an account, you can sign up here.