Java Reference
In-Depth Information
with high-ranking management and highly paid technical staff can burn
money at a frightening rate. So can schedule overruns and consultants.
By far the best way to solve antipatterns is to avoid the conditions that
allow them to occur in the first place. This requires that we allocate time in
our careers and projects to perform adequate research. We should also ask
questions about key antipatterns that share our project's domain when we
interview and phone-screen job candidates, and we need to reserve time after
a project to identify and capture key antipatterns that plagued its design. Pub-
lishing the worst problems where the whole team is able to read them is a
good idea.
Understanding antipatterns makes you a better programmer
Good programmers learn from their mistakes, but that costs time. Great pro-
grammers learn from the mistakes of others . The study of antipatterns gives us
insight into the patterns of behavior that lead to failure. Few programmers are
motivated enough to follow style guides and programming practices if they
don't understand why they should . If we understand the Split Cleaner design
pattern in chapter 7, then we also understand why we must aggressively pair
adds with removes and know when it's okay to break those rules. Understand-
ing Model-View-Controller can lead to cleaner architectures, and learning
some of the variations in chapter 4 can help us understand the ways that
design patterns can break.
Antipatterns can also help us look at coding in a whole new light. We can
empower ourselves to make a difference by learning to spot patterns of trou-
ble in our domain and find solutions to those problems. Becoming more pro-
ductive will be valuable—making a whole team more productive will multiply
the value. Learning to apply antipatterns to a new domain need not be diffi-
cult. We can see direct relationships between Round-tripping and the Cache-
less Cow. We can identify the common root cause in Lapsed Listeners, Leak
Collections, and Split Cleaners: a failure to pair the preparation and cleanup.
Testers will note similarities between some of the performance analysis antipat-
terns and the general testing process. With enough exposure over time, we can
spot and solve antipatterns quickly. This ability makes us more efficient, pro-
ductive—and valuable.
Search WWH ::

Custom Search