I went to an interesting presentation for the PLUG devel group this evening on design patterns. I'd have to say that it is an interesting idea, but I don't know that I'm sold on having it be part of the design process.

The biggest benifit that I can see from the design patterns stuff is that you can create a common design vocabulary between people who are familiar with design patterns. Being able to say something like 'That's a bridge pattern' can be very communicative when talking about how to design a system. But, that requires everyone that you're discussing with to have the same common knowledge of the design patterns. When it becomes part of the group's lexicon I could see it as very useful.

Another part of the design pattern process is about analyzing you current code to refactor it with patterns in mind. I think that is a touch ideal, I don't know how often opportunities like that come about in real programming -- it sure sounds nice. I can see an entire consulting business based on "refactoring your current codebase to use design patterns for performance and maintainability." Management types would just eat that up.

I do like that fact that it comes from a basis of architecture (as in buildings). I've always been a fan of designing the spaces that people live in -- really very neat. I don't think I'd like being an architect though, probably most of the jobs that pay the bills involve designing strip malls.

Overall, I think that understanding design patterns is a good thing, because you can be familiar with designs that work in everyday situations. But, I don't know that I'm going to join the patterns user groups.

The best part about the whole thing is that when people ask me how extensions work in Inkscape I can no say that they are designed in a typical 'bridge pattern'. (No really, they are, but I didn't know it at the time)


posted May 7, 2004 | permanent link