|
Better, Faster, Lighter Java
Sometimes the simplest answer is the best. Many Enterprise
Java developers, accustomed to dealing with Java's spiraling
complexity, have fallen into the habit of choosing overly
complicated solutions to problems when simpler options are
available. Building server applications with "heavyweight"
Java-based architectures,
such as WebLogic, JBoss, and
WebSphere, can be costly and cumbersome. When you've reached
the point where you spend more time writing code to support
your chosen framework than to solve your actual problems,
it's time to think in terms of simplicity.
In Better, Faster, Lighter Java, authors Bruce Tate and
Justin Gehtland argue that the old heavyweight architectures
are unwieldy, complicated, and contribute to slow and buggy
application code. As an alternative means for building
better applications, the authors present two "lightweight"
open source architectures: Hibernate--a persistence
framework that does its job with a minimal API and gets out
of the way, and Spring--a container that's not invasive,
heavy or complicated.
Hibernate and Spring are designed to be fairly simple to
learn and use, and place reasonable demands on system
resources. Better, Faster, Lighter Java shows you how they
can help you create enterprise applications that are easier
to maintain, write, and debug, and are ultimately much
faster.
Written for intermediate to advanced Java developers,
Better, Faster, Lighter Java, offers fresh ideas--often
unorthodox--to help you rethink the way you work, and
techniques and principles you'll use to build simpler
applications. You'll learn to spend more time on what's
important. When you're finished with this book, you'll find
that your Java is better, faster, and lighter than ever
before.
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
Understanding 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
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
Bibliography
Index
|