Preface 1. Refactoring, a First Example 2. Principles in Refactoring 3. Bad Smells in Code 4. Building Tests 5. Toward a Catalog of Refactorings 6. Composing Methods 7. Moving Features between Objects 8. Organizing Data 9. Simplifying Conditional Expressions 10. Making Method Calls Simpler 11. Dealing with Generalization 12. Big Refactorings 13. Refactoring, Reuse, and Reality 14. Refactoring Tools 15. Putting It All Together
Martin Fowler is Chief Scientist at ThoughtWorks. He describes himself as "an author, speaker, consultant and general loud-mouth on software development." Fowler concentrates on designing enterprise software: exploring what makes a good design and what practices are needed to create one.