文件名称:Real-Time Design Patterns
文件大小:208KB
文件格式:PDF
更新时间:2010-08-29 10:44:02
Design Patterns Real-Time
Real-Time Design Patterns
Many of us have had the experience of working with a truly great software designer. They
have the ability to look at a really hard problem and seemingly with no effort construct an
elegant and practical solution. Afterward, we all slap our foreheads and say “Of course!
It’s so obvious!1” How do those Great Designers actually come up with these great
designs in the first place?
By training, I am a neurophysiologist. During my medical school years, I primarily
studied information processing in biological neural systems2. The process of coming up
with Good Designs occurs in three phases:
· Internalization
· Pattern Matching
· Sequential Analysis
The first phase, internalization, is a linear process of gathering information. What are the
functions of the design? What are its constraints? What aspects of the design should be
optimized at the expense of others? This is a process of gathering and organizing
information about the system under design.
The second phase, pattern matching, is an inherently nonlinear process and is performed
almost exclusively by the subconscious mind. It is exactly this kind of thinking that has
occurred place when The Answer suddenly comes to you in the shower or when you wake
in the middle of the night. It often happens to me when I go for a run. I even go so far as to classify problems by how far I think I’ll have to run to come up with a solution. I might
tell my boss, “Gee, that’s a 10-mile problem. I’ll see you in a couple of hours – bye!3”
I believe that subconsciously our rather impressive pattern matching apparatus goes to
work on a pre-analyzed problem (that’s where the internalization phase comes in) and
does “best fit” pattern matching comparing thousands of patterns while our conscious
mind is off doing other things. Only when it finds a close-enough match (a potential
design solution) does it signal the conscious mind.
Just because the subconscious thinks it has found a good solution is no guarantee of the
quality of the proposed solution. Once identified, it is up to the linear processing system
of the brain to take the proposed solution and see if it does in fact meet our criteria. This
is the process of sequential analysis that is applied to a proposed solution. Most often,
this takes the form of mentally applying scenarios against the design pattern to ensure that
it in fact meets the necessary criteria and optimizes all the right things.