Prefactoring: Extreme Abstraction - Extreme Separation - Extreme Reliability

Front Cover
"O'Reilly Media, Inc.", 2005 - Computers - 220 pages

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. Refactoring is improving the design of existing code to make it simpler and easier to maintain.


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.

To help communicate the many facets of this approach, Prefactoring follows the development of a software system for a fictitious client, named Sam, from vision through implementation. Some of the guidelines you'll encounter along the way include:

  • When You're Abstract, Be Abstract All the Way
  • Splitters Can Be Lumped Easier Than Lumpers Can Be Split
  • Do a Little Job Well and You May Be Called Upon Often
  • Plan Globally, Develop Locally
  • Communicate with Your Code
  • The Easiest Code to Debug Is That Which is Not Written
  • Use the Client's Language
  • Don't Let the Cold Air In
  • Never Be Silent
  • Don't Speed Until You Know Where You Are Going
 

What people are saying - Write a review

LibraryThing Review

User Review  - raymond_and_sarah - LibraryThing

I was attracted to this book by the title: 'refactoring' and the agile development philosophy are sometimes used as an excuse for insufficent design. So I liked the explicit emphasis on the need to ... Read full review

LibraryThing Review

User Review  - dvf1976 - LibraryThing

I enjoyed the beginning of the book which talked about useful development practices, but the second half of the book was slightly too focused on the author's project. Read full review

Contents

Introduction to Prefactoring
1
The System in So Many Words
7
General Development Issues
23
Getting the Big Picture
45
Got Class?
59
A Few Words on Classes
69
Getting There
83
The First Release
95
More Reports
137
Invoices Credit Cards and Discounts
145
Sam Is Expanding
155
A Printserver Example
163
Antispam Example
175
Epilogue
193
Guidelines and Principles
195
Source Code
203

Associations and States
107
Interfaces and Adaptation
115
Zip Codes and Interfaces
125

Other editions - View all

Common terms and phrases

About the author (2005)

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.

Bibliographic information