In software engineering, a design pattern is a general repeatable solution to a commonly occurring problem in software design. A design pattern is not a finished design that can be transformed directly into code. It is a description or template for how to solve a problem that can be used in many different situations. Object-oriented design patterns typically show relationships and interactions between classes or objects, without specifying the final application classes or objects that are involved. Algorithms are not thought of as design patterns, since they solve computational problems rather than design problems. (from Wikipedia
This is one reason I think it is important for programmers to learn about such software management and philosophy of software coding methodologies. As you may well be aware, the “Design Patterns” book (which started the patterns and anti-patterns
craze) was primarily intended as a tool of thought and communication, not of software engineering. People who are familiar with the names of the different patterns, anti-patterns (both for code or management), refactorings, etc. can communicate more easily with other people. It also streamlines the thought process in having to think of a certain concept rather than what it means in practice.
So you should recommend your co-workers to study the available online (and offline) resources for software engineering, software management, etc.
Why use design patterns? Because they are patterns - they’ve been used by others, shown to solve known problems effectively, are recognized by the brain, and allow for shortcuts in communication (when talking to a co-worker you can suggest “Observer pattern” and if they don’t already know it, can easily google it).
Design Patterns: Elements of Reusable Object-Oriented Software (book)
Often referred to as the GoF, or Gang-Of-Four (because of the four authors who wrote it), Design Patterns: Elements of Reusable Object-Oriented Software (ISBN 0-201-63361-2) is a software engineering book describing recurring solutions to common problems in software design. The book’s authors are Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides. The book is divided into two parts, with the first two chapters exploring the capabilities and pitfalls of object-oriented programming, and the remaining chapters describing a series of classic software design patterns. source
Wikipedia:Design_Patterns - on the classic “Gang of Four” book
Design Patterns Quick Reference -- two page reference I like referring to
http://c2.com/ppr/ - the Portland Pattern Repository, reportedly the World First Wiki, as well.
http://www.exciton.cs.rice.edu/JAvaResources/DesignPatterns/default.htm - java patterns
Rethinking Design Patterns
http://www.dofactory.com/Patterns/Patterns.aspx - C#
Design Patterns Cheat-Sheet (pdf)
VB6 Class Factory Pattern
DesignPatterns Programming Books
No comments yet.