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 ""...
Autor principal: | |
---|---|
Otros Autores: | |
Formato: | Libro electrónico |
Idioma: | Inglés |
Publicado: |
Beijing :
O'Reilly
2004.
|
Edición: | First edition |
Materias: | |
Ver en Biblioteca Universitat Ramon Llull: | https://discovery.url.edu/permalink/34CSUC_URL/1im36ta/alma991009626940006719 |
Tabla de Contenidos:
- Better, Faster, Lighter Java; Organization of This Book; Conventions Used in This Book; Comments and Questions; Acknowledgments; Justin Gehtland; 1. The Inevitable Bloat; 1.1.2. Progress; 1.1.3. Economic Forces; 1.1.4. Misuse; 1.2. Options; 1.3. Five Principles for Fighting the Bloat; 1.3.2. 2. Do One Thing, and Do It Well; 1.3.3. 3. Strive for Transparency; 1.3.4. 4. Allow for Extension; 1.3.5. 5. You Are What You Eat; 1.4. Summary; 2. Keep It Simple; 2.1.1.2. Design patterns; 2.1.1.3. Your own code; 2.2. Process and Simplicity; 2.2.2. Pick Your Battles; 2.2.2.2. Architecture
- 2.2.2.3. Performance2.2.2.4. Design patterns; 2.3. Your Safety Net; 2.3.1.2. Initialization and clean up; 2.3.1.3. Assertions; 2.3.1.4. Exceptions and intentional failure; 2.3.2. Automating Test Cases with Ant; 2.3.3. Refactoring for Testability; 2.3.3.2. Coupling; 2.4. Summary; 3. Do One Thing, and Do It Well; 3.1.2. Controlling Scope Creep; 3.1.2.2. Curtailing disruptive change; 3.2. Distilling the Problem; 3.2.2. Whittling Away the Noise; 3.2.3. Refining Your Design; 3.3. Layering Your Architecture; 3.3.2. Interfaces Between Layers; 3.3.3. Common Layers; 3.3.3.2. Data access
- 3.3.3.3. Communication3.3.3.4. Façades; 3.3.3.5. User interfaces; 3.4. Refactoring to Reduce Coupling; 3.4.1.2. Inheritance; 3.4.1.3. Transitive coupling; 3.4.1.4. The role of transparency; 3.4.1.5. Testing and coupling; 3.4.2. Macrocoupling; 3.4.2.2. Façades; 3.4.2.3. Shared data; 3.4.2.4. Databases; 3.4.2.5. Configuration; 3.5. Summary; 4. Strive for Transparency; 4.2. Who&s in Control?; 4.2.2. The Power of Passive Models; 4.3. Alternatives to Transparency; 4.3.1.2. Subclassing; 4.3.1.3. Building a hardwired service; 4.3.1.4. Code metadata; 4.3.1.5. Imposing an invasive programming paradigm
- 4.3.2. Moving Forward4.4. Reflection; 4.4.2. Accessing a Class; 4.4.3. Accessing Fields; 4.4.4. Accessing Methods and Constructors; 4.5. Injecting Code; 4.6. Generating Code; 4.6.2. Code Generation and Transparency; 4.7. Advanced Topics; 4.7.2. A New Programming Paradigm; 4.8. Summary; 5. You Are What You Eat; 5.1.2. Some Examples; 5.1.2.2. J2EE; 5.1.2.3. Distribution; 5.1.2.4. EJB; 5.1.2.5. XML; 5.1.2.6. Persistence frameworks; 5.1.2.7. Web services; 5.2. Understanding the Big Picture; 5.2.1.2. A hypothetical example; 5.2.1.3. It&s all business; 5.2.1.4. Passion and software
- 5.3. Considering Technical Requirements5.3.2. Inner Questions; 5.3.2.2. Documentation; 5.4. Summary; 6. Allow for Extension; 6.1.2. Planned Extension; 6.1.3. Unplanned Extension; 6.2. Tools for Extension; 6.2.2. Configuration; 6.2.2.2. Server-side configuration with Apache Digester; 6.2.3. Class Loading; 6.2.3.2. Invoking methods; 6.2.3.3. Which class loader?; 6.2.4. What Should You Configure?; 6.2.4.2. External touch points; 6.2.4.3. External resources; 6.3. Plug-In Models; 6.3.1.2. Inversion of control; 6.3.2. The Role of Interfaces; 6.4. Who Is the Customer?; 6.5. Summary; 7. Hibernate
- 7.2. What Is Hibernate?