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