MORE ON DESIGN PATTERNS
with Fabian Pascal

 

 

 

From: David Flatman

Date: 26 Aug 2005

 

In regards to On “Design Patterns” for Databases, before you dismiss it due to OO people endorsing it, you might want to look into it a little.  The original subject of design patterns when I was introduced to them was telecommunication networking issues – nothing to do with OO.  The basic concept is a set of design patterns that are “if you have this type of problem approach the solution in this way”.  It is a mechanism for keep expert knowledge within a group for all to benefit from – especially after the expert leaves.

 

According to Design Patterns: Elements of Reusable Object-Oriented Software (okay, don’t stop reading just because of the title), a design pattern has four essential parts: the pattern name, the problem description, the solution description, and the consequences (trade-offs).

 

You have already effectively created and published a number of design patterns, including storing hierarchical data inside a relational database.  A related design patterns would be walking tree structures in the relational model.

 

Is it necessary to call such things “design patterns”?  No.  But it can be useful mechanism for collecting good ideas related to design.

 

As always, if you have any questions, comments, criticisms, or sly-remarks, please let me know.

 

 

From: Fabian Pascal

 

I did not dismiss it because of OO; I just said that support by OO people does not add to its credence. I also said I don't know enough about it to express an opinion. I think learning fundamentals is a much more productive use of one's time and likely to serve as guide for most circumstances. Patterns are too close to a cookbook approach to warrant serious attention.

 

Fundamentals are design patterns.

 

 

From: David Flatman

 

Regarding “fundamentals are design patterns”, I completely agree – and though stated in a round about way, I think that was my point.  So the question boils down to what is the best way to record, disseminate and teach fundamental knowledge – whether it is software development or database design.  Trying to convince “professionals” to go back to school because they don’t understand their own field tends to go over like a lead balloon, especially when it is too close to the mark.

 

Your criticism that design patterns too closely resemble cookbook problem solving is probably correct, although I usually think of cookbook solutions being more code or specific problem with the detail at a level where the user just grabs the cookie-cutter solution, applies it, and is none the wiser.  I’ve generally viewed design patterns as being at a higher, more abstract level and are geared towards general design approach versus “steal this code” approach.

 

 

From: Fabian Pascal

 

That is a due to a total failure of the educational system (and a more general societal problem: which is anti-intellectual: don't think or acquire knowledge, do). There is no way around that problem and trying to inculcate fundamentals to uneducated people in the form of recipes and cookbooks does not solve the problem. It's an illusion.

 

 

Posted 10/14/05