Java Reference
In-Depth Information
I also jotted down a note that the units of work should be managed in the
database and not the application. I noticed that the database code was sprin-
kled throughout, making it difficult to change this beast without the impact
rippling throughout the system. I was starting to understand the depth of the
problem. Even though most of these audits were the same, at some point they
all hit me in the face like a cold glass of water.
Over the next four hours, we read code and drew diagrams. We found that
the same policy would be fetched from 4 to 11 times, depending on the usage
scenario. (The caching antipatterns at this customer and others prompted dis-
cussions in chapter 5, where you'll learn about the caching and serialization
techniques that can make a huge difference.) We drew interaction diagrams of
the sticky stuff and identified major interfaces. We then used these diagrams to
find iteration over major interface boundaries and to identify general chatty
communications that could be simplified or shifted.
We left the customer a detailed report and provided services to rework the
problem areas. We supplied a list of courses for the programmers and sug-
gested getting a consulting mentor to solidify the development process. When
all was said and done, the application was completed ahead of the revised
schedule and the performance improved tenfold . This story actually combines
three different customer engagements, each uglier than this one. I changed
some details to protect the names of the guilty, but the basic scenario has been
repeated many times over the course of my career. I find problems and provide
templates for the solutions. While most of my peers have focused on design
patterns, I find myself engaged with antipatterns .
Antipatterns in life
On the Watauga River, with all of the expectations and buildup, the run through
State Line is ultimately anticlimactic. I land with a soft “poof” well right of the
major turbulence. The entire run takes less than 20 seconds. Even so, I recognize
this moment as a major accomplishment.
How could a journeyman kayaker successfully navigate such a dangerous
rapid? How could I convince myself that I would succeed in light of so many
other failures? I'd learned from the success and failure of those who went
before me. The real extremists were those that hit rock after rock, breaking
limbs and equipment, while learning the safest route through the rapid. I see a
striking similarity between navigating rivers and writing code. To make it
through State Line Falls , I simply did three things:
Search WWH ::

Custom Search