Buying Options
Prefactoring
Print $29.95
Add to Cart
Print+Ebook $32.95
Add to Cart
Ebook $23.99
(PDF)
Add to Cart
Safari Books Online
Add to Cart
What is this?
Print £22.99
Add to Cart
What is this?
Description
Prefactoring approaches software development of new systems using lessons learned from many developers over the years. It is a compendium of ideas gained from retrospectives on what went right and what went wrong in development. Some of these ideas came from experience in refactoring. This practical, thought-provoking guide details prefactoring guidelines in design, code, and testing. These guidelines can help you create more readable and maintainable code in your next project.
Full Description
Table of Contents
  1. Chapter One Introduction to Prefactoring

    1. What Is Prefactoring?

    2. The Three Extremes

    3. The Guidelines Explored

    4. The Context for This Book

  2. Chapter Two The System in So Many Words

    1. Meet Sam

    2. Reinvention Avoidance

    3. What's in a Name?

    4. Splitters Versus Lumpers

    5. Clumping

    6. Abstracting

    7. Prototypes Are Worth a Thousand Words

  3. Chapter Three General Development Issues

    1. Start with the Big Picture

    2. Interface Contracts

    3. Validation

    4. Code Communicates

    5. Consistency Is Simplicity

    6. A Prefactoring Attitude

    7. Don't Repeat Yourself

    8. Documentation of Assumptions and Decisions

    9. Dealing with Deviations and Errors

    10. Speeding

    11. The Spreadsheet Conundrum

    12. Tools Are Tools—Use Them Wisely

  4. Chapter Four Getting the Big Picture

    1. The Rest of the Story

    2. Process

    3. The Initial Design

    4. Global Planning, Local Designing

    5. Testing Functionality

    6. Testing Quality

    7. Security

  5. Chapter Five Got Class?

    1. Categories and Classes

    2. Declaration Versus Execution

    3. Appropriate Inheritance

    4. Communicate with Text

    5. More Than One

  6. Chapter Six A Few Words on Classes

    1. Honor the Class Maxims

    2. Three Laws of Objects

    3. Need Determines Class

    4. Polymorphism

    5. One Little Job

    6. Policy Versus Implementation

    7. Extreme Naming

    8. Overloading Functions

  7. Chapter Seven Getting There

    1. Where We Are

    2. Separating Concerns

    3. Migrating to the New System

  8. Chapter Eight The First Release

    1. The Proof Is in the Pudding

    2. Retrospective Time

    3. The System as It Stands Now

    4. Operations Interface

    5. Abstract Data Types

    6. Configuration

    7. Testing

    8. Dealing with Deviations and Errors

    9. A Little Prefactoring

    10. The First Released Iteration

    11. Sometimes Practice Does Not Match Theory

    12. The Rest of the Classes

  9. Chapter Nine Associations and States

    1. Sam's New Requirement

    2. Who's in Charge?

    3. The State of an Object

  10. Chapter Ten Interfaces and Adaptation

    1. The Catalog Search Use Case

    2. Designing the Interface

    3. Interface Development

    4. Interface Testing

    5. Interface Splitting

    6. Something Working

  11. Chapter Eleven Zip Codes and Interfaces

    1. Adaptation

    2. Pass the Buck

    3. Unwritten Code

    4. Indirection

    5. Logging

    6. Paradigm Mismatch

  12. Chapter Twelve More Reports

    1. Fancy Reports

    2. Change Happens

    3. Exports

  13. Chapter Thirteen Invoices, Credit Cards, and Discounts

    1. The Next Step

    2. The Language of the Client

    3. Security and Privacy

  14. Chapter Fourteen Sam Is Expanding

    1. The Second Store

    2. A New Development

    3. The Third Store

    4. Goodbye Sam

    5. Generality

  15. Chapter Fifteen A Printserver Example

    1. Introduction

    2. The System

    3. The Message

    4. Testing

    5. Logging

    6. Still More Separation

    7. Epilogue

  16. Chapter Sixteen Antispam Example

    1. The Context

    2. Spam Checking

    3. The ReceivingMailServer

    4. ReceivedMailExaminer

    5. The Full Flow

  17. Chapter Seventeen Epilogue

  1. Appendix A Guidelines and Principles

    1. Guidelines

    2. Guidelines in Alphabetical Order

    3. Software Design Principles

  2. Appendix B Source Code

    1. com.samscdrental.configuration Package

    2. com.samscdrental.controller Package

    3. com.samscdrental.dataaccess Package

    4. com.samscdrental.display.adt Package

    5. com.samscdrental.display Package

    6. com.samscdrental.failures Package

    7. com.samscdrental.helper Package

    8. com.samscdrental.importexport Package

    9. com.samscdrental.migration Package

    10. com.samscdrental.model.adt Package

    11. com.samscdrental.model.dto Package

    12. com.samscdrental.model Package

    13. com.samscdrental.reports Package

    14. com.samscdrental.tests Package

  3. Colophon

View Full Table of Contents
Product Details
Title:
Prefactoring
By:
Ken Pugh
Publisher:
O'Reilly Media
Formats:
  • Print
  • Ebook
  • Safari Books Online
Print Release:
September 2005
Ebook Release:
June 2009
Pages:
240
Print ISBN:
978-0-596-00874-1
| ISBN 10:
0-596-00874-0
Ebook ISBN:
978-0-596-55676-1
| ISBN 10:
0-596-55676-4
Customer Reviews
About the Author
  1. Ken Pugh

    Ken Pugh has extensive experience in the area of software analysis and design, both as a doer and as a teacher. He's a well-known, frequent conference speaker.

    View Ken Pugh's full profile page.

Colophon

About the author Ken Pugh has extensive experience in the area of software analysis and design. He has worked on systems ranging from goat serum process control to financial analysis to noise recording to satellite tracking. His previous books were on C and Unix, and he is a former columnist for the C/C++ Users Journal. He has taught programming courses for Wellesley College and the University of Hawaii, as well as numerous corporate courses, and he frequently presents at national conferences. As an independent consultant for over 20 years, he has served clients from London to Sydney. As an expert witness, he has provided testimony in both civil suits and criminal cases. When not computing, he enjoys snowboarding, windsurfing, biking, and hiking the Appalachian Trail.

Colophon Our look is the result of reader comments, our own experimentation, and feedback from distribution channels. Distinctive covers complement our distinctive approach to technical topics, breathing personality and life into potentially dry subjects. Sarah Sherman was the production editor and proofreader, and Audrey Doyle was the copyeditor for Prefactoring . Mary Anne Weeks Mayo and Claire Cloutier provided quality control. Lydia Onofrei provided production assistance. Johnna VanHoose Dinse wrote the index. MendeDesign designed and created the cover artwork of this book. Karen Montgomery produced the cover layout with Adobe InDesign CS using the Akzidenz Grotesk and Orator fonts. Marcia Friedman designed the interior layout. Melanie Wang designed the template; Phyllis McKee adapted the template. The book was converted by Keith Fahlgren to FrameMaker 5.5.6 with a format conversion tool created by Erik Ray, Jason McIntosh, Neil Walls, and Mike Sierra that uses Perl and XML technologies. The text font is Adobe's Meridien; the heading font is ITC Bailey. The illustrations that appear in the book were produced by Robert Romano, Jessamyn Read, and Lesley Borash using Macromedia FreeHand MX and Adobe Photoshop CS.

  • Book cover of Prefactoring