As a programmer you will after a time start to recognize certain patterns, or things you have been doing in the past repeating itself over and over. You are not the first: a design pattern is a general reusable solution to a commonly occurring problem and will help you when it comes to solving your day-to-day programming.
Remember: Patterns are not a one-stop-solution for every problem you have, they are guidelines and best-practices that must be applied to your current problem. In my dayjob at fronter I work a lot with code-review and quality assurance, this has lead me to see both patterns and antipatterns, so I wanted to find some good reference material for the programmers at work to digg into. What I found when starting to look for some good reference sites is that over the last couple of years there has been a lot of new patterns sites showing up covering more specific elements; earlier there was GoF and the more traditional patterns, now I see good sites covering both traditional patterns as well as UI-patterns, JS-patterns and interaction patterns.
I’m not going to write a long blurb about patterns and what patterns there are out there, rather list some of the sites you should have a look at:
- Main pattern page on wikipedia
- Design patterns
This GoF ( Gang of Four ) book is a classic design pattern book and should be in every bookshelf.
- Design patterns quick reference
A PDF for you to print out and put on your wall next to the computer.
- Core J2EE patterns
A good collection of design patterns, antipatterns and refactoring.
- PHP Design Patterns
A collection of patterns implemented in PHP
- Design Pattern Library
This is a interface patterns site from Yahoo. It covers patterns with a good problem summary, a step-by-step solution and a “Use when” part that is very useful.
UI patterns with a good problem summary and solution on it.
- Interaction design pattern
A extensive interaction design pattern library split into categories like “Searching” and “Dealing with data”