Java Reference
In-Depth Information
many projects of all dimensions and sharpen our skills by hammering home
the reasons behind the rules for good hygiene and program structure.
11.1.1
Antipatterns ignite careers
For most of my career, I've sought difficult problems and honed my skills in
finding practical solutions to those problems. As a database systems program-
mer at IBM , I learned about database performance and the common problems
that plague database applications. My management team liked my initiative
and deployed me on a highly visible national team chartered to solve these
problems. After publishing an article on performance-related antipatterns, I
was approached by a publisher to write my first book.
These days, I am a consultant. My professional focus is on antipatterns and
the application of refactored solutions. The first rule of consulting and sales is
“Hurt, then rescue.” We must be able to see a customer's problems, commu-
nicate the impact of the problems, and show that the impact is sufficient
enough to warrant a decent commissions check for the solution. Then, we
must solve the problem. The best consultants recognize a pattern of behavior
that they can leverage across many enterprises. Does this process sound famil-
iar? It should.
Software engineers and architects who are well versed in antipatterns can
be of considerable value. They have the foresight to steer the troops away
from many software development ambushes, often while upper management
is watching. The most respected programmers seem to know why an idea is
good or bad. I like learning from my mistakes as much as the next person, but
I would much rather learn from your mistakes.
11.1.2
Understanding antipatterns improves programs
Many of the bad practices outlined in this topic can be exceedingly expensive
mistakes. We know that a tight coupling between the model and view can be
crippling or even fatal under many circumstances. We have seen the impact of
round-tripping. The code may be easy to refactor, but the problem may not
be easy to find—I've worked on projects that involved months of trying to
locate the source of performance problems of this kind. Often, a caching
strategy should be considered from the beginning, so that strategies for stale
data and invalidation will be compatible with the architecture. Many of the
EJB antipatterns are also easy to fix, but very difficult to isolate without
advanced knowledge because so many layers and variables complicate the
search. It is not rare for a single decision leading to an antipattern to cost hun-
dreds of thousands of dollars over the life cycle of a project. Crisis meetings
Search WWH ::




Custom Search