Prefactoring (Paperback)

Prefactoring (Paperback)

作者: Ken Pugh
出版社: O'Reilly
出版在: 2005-09-27
ISBN-13: 9780596008741
ISBN-10: 0596008740
裝訂格式: Paperback
總頁數: 240 頁





內容描述


Description:

More often than not, developers will stop a large project in the middle of
the build stage to rethink and recode the software design so it's cleaner and
more efficient. Known as "refactoring," this process eats up valuable time and
money. To help offset refactoring, this book presents a new process called
"prefactoring," the premise of which states that you're better off considering
the best possible design patterns before you even begin your project.
Prefactoring, in essence, is the art of applying the insights gleaned
from previous experience (whether yours or someone else's) when developing
software to new projects. Doing so will likely save you from making costly
design changes midstream--and maybe even save your job!
This practical, thought-provoking guide details prefactoring guidelines
in design, code, and testing, each derived from the lessons of many developers
over many years. With these guidelines, you're far more likely to create more
readable and maintainable code before you reach the second-guessing stage.

To help communicate the many facets of this process,
Prefactoring follows the example of a fictitious client, Sam, as he
seeks to create a software system from beginning to implementation. Among the
topics covered:

General development issues
Implementation classes
Object-oriented design
Creating reports via separation of concerns
Associations and states
Creating and testing interfaces
If you understand object-oriented design, and you want to save time and
money by considering more efficient designs before you begin your
project, Prefactoring will show you the way. It won't guarantee that
you'll never need to refactor your design or code again, but you're sure to
cut down on the amount of refactoring you do.
 
 
Table of
Contents:

Preface

  1. Introduction to Prefactoring
         What Is Prefactoring?    
     The Three Extremes      The Guidelines Explored
         The Context for This Book
  2. The System in So Many Words
         Meet Sam    
     Reinvention Avoidance      What's in a Name?
         Splitters Versus Lumpers    
     Clumping      Abstracting    
     Prototypes Are Worth a Thousand Words
  3. General Development Issues
         Start with the Big Picture  
       Interface Contracts      Validation
         Code Communicates    
     Consistency Is Simplicity      A Prefactoring
    Attitude      Don't Repeat Yourself  
       Documentation of Assumptions and Decisions    
     Dealing with Deviations and Errors      Speeding
         The Spreadsheet Conundrum    
     Tools Are Tools-Use Them Wisely
  4. Getting the Big Picture
         The Rest of the Story      Process
         The Initial Design    
     Global Planning, Local Designing      Testing
    Functionality      Testing Quality  
       Security
  5. Got Class?    
     Categories and Classes      Declaration Versus
    Execution      Appropriate Inheritance  
       Communicate with Text      More Than One

  6. A Few Words on Classes
         Honor the Class Maxims      Three
    Laws of Objects      Need Determines Class
         Polymorphism      One Little Job
         Policy Versus Implementation  
       Extreme Naming      Overloading Functions

  7. Getting There  
       Where We Are      Separating Concerns
         Migrating to the New System

  8. The First Release  
       The Proof Is in the Pudding    
     Retrospective Time      The System as It Stands
    Now      Operations Interface    
     Abstract Data Types      Configuration
         Testing      Dealing with
    Deviations and Errors      A Little Prefactoring
         The First Released Iteration  
       Sometimes Practice Does Not Match Theory    
     The Rest of the Classes
  9. Associations and States
         Sam's New Requirement      Who's
    in Charge?      The State of an Object

  10. Interfaces and Adaptation
         The Catalog Search Use Case  
       Designing the Interface      Interface
    Development      Interface Testing  
       Interface Splitting      Something
    Working

  11. Zip Codes and Interfaces
         Adaptation      Pass
    the Buck      Unwritten Code    
     Indirection      Logging    
     Paradigm Mismatch
  12. More Reports  
       Fancy Reports      Change Happens
         Exports
  13. Invoices, Credit Cards, and
    Discounts      The Next Step  
       The Language of the Client      Security
    and Privacy
  14. Sam Is Expanding  
       The Second Store      A New Development
         The Third Store    
     Goodbye Sam      Generality
  15. A Printserver Example
         Introduction      The System
         The Message      Testing
         Logging      Still More
    Separation      Epilogue
  16. Antispam Example  
       The Context      Spam Checking
         The ReceivingMailServer    
     ReceivedMailExaminer      The Full Flow

  17. Epilogue
    a. Guidelines and Principles

b. Source Code
index




相關書籍

Jenkins 2: Up and Running: Evolve Your Deployment Pipeline for Next Generation Automation

作者 Brent Laster

2005-09-27

Documenting Software Architectures: Views and Beyond, 2/e (Hardcover)

作者 Paul Clements Felix Bachmann Len Bass David Garlan James Ivers Reed Little Paulo Merson Robert Nord Judith Stafford

2005-09-27

Beyond Software Architecture: Creating and Sustaining Winning Solutions

作者 Luke Hohmann

2005-09-27