Skip to content

Bitter Java

Spend $50 to get a free DVD!

ISBN-10: 193011043X

ISBN-13: 9781930110434

Edition: 2002

Authors: Bruce A. Tate, Braden R. Flowers

List price: $44.95
Blue ribbon 30 day, 100% satisfaction guarantee!
Out of stock
what's this?
Rush Rewards U
Members Receive:
Carrot Coin icon
XP icon
You have reached 400 XP and carrot coins. That is the daily max!

Intended for intermediate Java programmers, analysts, and architects, this guide is a comprehensive analysis of common server-side Java programming traps (called anti-patterns) and their causes and resolutions. Based on a highly successful software conference presentation, this book is grounded on the premise that software programmers enjoy learning not from successful techniques and design patterns, but from bad programs, designs, and war stories -- bitter examples. These educational techniques of graphically illustrating good programming practices through negative designs and anti-patterns also have one added benefit: they are fun.
Customers also bought

Book details

List price: $44.95
Copyright year: 2002
Publisher: Manning Publications Company
Publication date: 3/1/2002
Binding: Paperback
Pages: 368
Size: 7.50" wide x 9.25" long x 0.75" tall
Weight: 1.386
Language: English

Bruce Tate, CTO of, is a mountain biker, climber, and father of two from Austin, Texas. He is the author of more than ten books, including Seven Languages in Seven Weeks, and is the series editor of the Seven in Seven series.

About this book
About the cover illustration
The basics
Bitter tales
A Java development free fall
Using design patterns accentuates the positive
Antipatterns teach from the negative
Antipattern ideas are not new
Why Bitter Java?
Looking ahead
The bitter landscape
Fertile grounds for antipatterns
Internet technologies
Object technologies and antipatterns
Java technologies solve antipatterns
Major problems with the waterfall
A quick survey of the bitter landscape
Antipatterns in this chapter
Server-side Java antipatterns
Bitter servlets
Getting off on the wrong foot
Antipattern: The Magic Servlet
Solution: Refactor using commands
Antipattern in this chapter
Bitter JSPs
Getting only halfway home
Antipattern: Monolithic JSPs
Antipattern: Compound JSPs
Mini-antipatterns: Coarse and Fine Commands
Mini-antipattern: Fat Commands
Reviewing the JSP antipatterns
Antipatterns in this chapter
Bitter cache management
We need caches!
Antipattern: The Cacheless Cow
Solution: Cache
Cache-related mini-antipatterns
Antipattern: Synchronized Read/Write Bottlenecks
Cooking the Cacheless Cow
Antipatterns in this chapter
Bitter memories
Understanding memory leaks and antipatterns
Trading C++ for Java
Antipattern: Lapsed Listeners Leak
Antipattern: The Leak Collection
Shooting memory leaks
Mini-Antipatterns: Little Hogs
Antipatterns in this chapter
Bitter connections and coupling
Making connections
Antipattern: Connection Thrashing
Antipattern: Split Cleaners
Antipattern: Hardwired Connections
Mini-antipatterns for XML misuse
Mini-antipatterns: Rigid XML
Summary: Sweetening bitter connections
Antipatterns in this chapter
Bitter beans
A brief Enterprise JavaBeans review
Bitter BBS with EJBs
Antipattern: Round-tripping
Antipattern: Square Bean in a Round Hole
Mini-antipattern: Everything Is an EJB
EJBs and caching
Smoothing out the bitter beans
Antipatterns in this chapter
The Big Picture
Bitter hygiene
Why study programming hygiene?
Mini-antipatterns: Unreadable code
Mini-antipatterns: Organization and visibility
Mini-antipatterns: Structure
Mini-antipatterns: Leaks and performance
Conventions for testing
Building a good style guide
Summary of coding standards
Bitter scalability
Good topologies for performance
Antipattern: Performance Afterthoughts
Antipattern: Round-tripping
Antipattern: Bad Workload Management
Antipattern: Chaotic Session Management
Antipattern: Thrash-tuning
Taming the performance beast
Antipatterns in this chapter
Sweet parting thoughts
Antipatterns help us on many levels
Integrating antipatterns with process
Next steps, last steps
Cross-references of antipatterns