Preface
1. The Inevitable Bloat
Bloat Drivers
Options
Five Principles for Fighting the Bloat
Summary
2. Keep It Simple
The Value of Simplicity
Process and Simplicity
Your Safety Net
Summary
3. Do One Thing (and Do It Well)
Understand the Problem
Distilling the Problem
Layering Your Architecture
Refactoring to Reduce Coupling
Summary
4. Strive for Transparency
Benefits of Transparency
Who's in Control?
Alternatives to Transparency
Reflection
Injecting Code
Generating Code
Advanced Topics
Summary
5. You Are What You Eat
Golden Hammers
Understanding the Big Picture
Considering Technical Requirements
Summary
6. Allow for Extension
The Basics of Extension
Tools for Extension
Plug-In Models
Who Is the Customer?
Summary
References
7. Hibernate
The Lie
What Is Hibernate?
Using Your Persistent Model
Evaluating Hibernate
Summary
8. Spring
What Is Spring?
Pet Store: A Counter Example
The Domain Model
Adding Persistence
Presentation
Summary
9. Simple Spider
What Is the Spider?
Examining the Requirements
Planning for Development
The Design
The Configuration Service
The Crawler/Indexer Service
The Search Service
The Console Interface
The Web Service Interface
Extending the Spider
10. Extending jPetstore
A Brief Look at the Existing Search Feature
Replacing the Controller
The User Interface (JSP)
Setting Up the Indexer
Making Use of the Configuration Service
Adding Hibernate
Summary
11. Where Do We Go from Here?
Technology
Process
Challenges
Conclusion
Index