
Better, Faster, Lighter Java
Description
Alles über E-Books | Antworten auf Fragen rund um E-Books, Kopierschutz und Dateiformate finden Sie in unserem Info- & Hilfebereich.
More details
Other editions
Additional editions

Content
- Intro
- Table of Contents
- Preface
- Who Should Read This Book?
- Organization of This Book
- Conventions Used in This Book
- Comments and Questions
- Acknowledgments
- Bruce A. Tate
- Justin Gehtland
- The Inevitable Bloat
- Bloat Drivers
- Enterprise Mega-Frameworks
- Progress
- Economic Forces
- Misuse
- Options
- Five Principles for Fighting the Bloat
- 1. Keep It Simple
- 2. Do One Thing, and Do It Well
- 3. Strive for Transparency
- 4. Allow for Extension
- 5. You Are What You Eat
- Summary
- Keep It Simple
- The Value of Simplicity
- Choosing the Foundations
- Technology you buy
- Design patterns
- Your own code
- Process and Simplicity
- The Best of Agile
- Pick Your Battles
- Algorithms
- Architecture
- Performance
- Design patterns
- Your Safety Net
- Getting Started with JUnit
- Organizing tests
- Initialization and clean up
- Assertions
- Exceptions and intentional failure
- Automating Test Cases with Ant
- Refactoring for Testability
- Reuse and testability
- Coupling
- Summary
- Do One Thing, and Do It Well
- Understanding the Problem
- Gathering Requirements
- Controlling Scope Creep
- Managing good change
- Curtailing disruptive change
- Distilling the Problem
- Collecting Requirements
- Whittling Away the Noise
- Refining Your Design
- Layering Your Architecture
- The Basics of Layering
- Interfaces Between Layers
- A word about good interfaces
- Common Layers
- Business domain models
- Data access
- Communication
- Façades
- User interfaces
- Refactoring to Reduce Coupling
- Microcoupling
- Direct access
- Inheritance
- Transitive coupling
- The role of transparency
- Testing and coupling
- Macrocoupling
- Communication model
- Façades
- Shared data
- Databases
- Configuration
- Summary
- Strive for Transparency
- Benefits of Transparency
- Who's in Control?
- Active Domain Models
- The Power of Passive Models
- Alternatives to Transparency
- Techniques That Compromise Transparency
- Invading the model
- Subclassing
- Building a hardwired service
- Code metadata
- Imposing an invasive programming paradigm
- Moving Forward
- Reflection
- The Reflection API
- Accessing a Class
- Accessing Fields
- Accessing Methods and Constructors
- Invoking a method
- Injecting Code
- Byte code enhancement frameworks
- Generating Code
- How Code Generation Works
- Code Generation and Transparency
- Advanced Topics
- Coarse- and Fine-Grained Services
- A New Programming Paradigm
- Summary
- You Are What You Eat
- Golden Hammers
- The Allure
- The sales process
- Some Examples
- Java
- J2EE
- Distribution
- EJB
- XML
- Persistence frameworks
- Web services
- Understanding the Big Picture
- Modern Cathedrals
- Aligning your goals
- A hypothetical example
- It's all business
- Passion and software
- Considering Technical Requirements
- Outer Questions
- Inner Questions
- Prototypes
- Documentation
- Summary
- Allow for Extension
- The Basics of Extension
- Inheritance and Interfaces
- Planned Extension
- The Inventor's Paradox
- Unplanned Extension
- Tools for Extension
- Standards
- Configuration
- Client-side configuration with Java Preferences
- Server-side configuration with Apache Digester
- Class Loading
- Loading a class with Class.forName
- Invoking methods
- Which class loader?
- What Should You Configure?
- Fundamental concepts
- External touch points
- External resources
- Plug-In Models
- Plug-Ins at a Lower Level
- Service locators
- Inversion of control
- The Role of Interfaces
- Who Is the Customer?
- Summary
- Hibernate
- The Lie
- What Is Hibernate?
- Simple Example
- Writing the Object Model
- Building the Schema
- Configuring the Mapping
- Identifiers
- Relationships
- Types
- Using Your Persistent Model
- Configuring Hibernate
- Using Your Model
- Loading data
- Updating the database
- Evaluating Hibernate
- Keep It Simple
- Do One Thing, and Do It Well
- Strive for Transparency
- Allow for Extension
- You Are What You Eat
- Going against the grain
- The Down Side
- Alternatives
- Summary
- Spring
- What Is Spring?
- Inversion of Control
- Pet Store: A Counter-Example
- The Configuration
- The Domain Model
- Adding Persistence
- The Model
- The Mapping
- The DAO Interface
- The DAO Implementation
- Using the Model Through a Façade
- Configuration for the DAO Layer
- The Benefits
- Presentation
- Configuration
- Controllers
- Forms
- Validation
- Summary
- Simple Spider
- What Is the Spider?
- Examining the Requirements
- Breaking It Down
- Refining the Requirements
- Planning for Development
- The Design
- The Configuration Service
- Principles in Action
- The Crawler/Indexer Service
- Principles in Action
- The Search Service
- Principles in Action
- The Console Interface
- Principles in Action
- The Web Service Interface
- Principles in Action
- Extending the Spider
- Extending jPetStore
- A Brief Look at the Existing Search Feature
- Deciding on the Spider
- Extending jPetStore
- Replacing the Controller
- Rewrite or Replace?
- Implementing the Interface
- Registering Our New Class with jPetStore
- Principles in action
- The User Interface (JSP)
- Changes to the Original Code to Fit the JSP
- What if We Don't Have the Spider Source?
- Principles in Action
- Setting Up the Indexer
- Embed in jPetStore or Launch Externally?
- Using the System Scheduler
- Smell the Roses
- Principles in Action
- Making Use of the Configuration Service
- Principles in Action
- Adding Hibernate
- Existing Architecture
- Hibernate Mappings for Existing Domain Objects
- Hibernate DAOs
- Changing the Application Configuration
- Spring's Built-In Hibernate Support
- Principles in Action
- Summary
- Where Do We Go from Here?
- Technology
- Less Is More
- Open Source
- Aspect-Oriented Programming (AOP)
- Persistence
- Containers
- Process
- Challenges
- Conclusion
- Bibliography
- Books
- Referenced Internet Sources
- Helpful Internet Sources
- Other References
- Index
System requirements
File format: ePUB
Copy protection: Adobe-DRM (Digital Rights Management)
System requirements:
- Computer (Windows; MacOS X; Linux): Install the free reader Adobe Digital Editions prior to download (see eBook Help).
- Tablet/smartphone (Android; iOS): Install the free app Adobe Digital Editions or the app PocketBook before downloading (see eBook Help).
- E-reader: Bookeen, Kobo, Pocketbook, Sony, Tolino and many more (not Kindle).
The file format ePub works well for novels and non-fiction books – i.e., „flowing” text without complex layout. On an e-reader or smartphone, line and page breaks automatically adjust to fit the small displays.
This eBook uses Adobe-DRM, a „hard” copy protection. If the necessary requirements are not met, unfortunately you will not be able to open the eBook. You will therefore need to prepare your reading hardware before downloading.
Please note: We strongly recommend that you authorise using your personal Adobe ID after installation of any reading software.
For more information, see our ebook Help page.