Chapter 1: Refactoring: A First Example
Comments on the Starting Program
Decomposing the statement Function
Status: Lots of Nested Functions
Splitting the Phases of Calculation and Formatting
Status: Separated into Two Files (and Phases)
Reorganizing the Calculations by Type
Status: Creating the Data with the Polymorphic Calculator
Chapter 2: Principles in Refactoring
Refactoring, Architecture, and Yagni
Refactoring and the Wider Software Development Process
Where Did Refactoring Come From?
Alternative Classes with Different Interfaces
The Value of Self-Testing Code
Chapter 5: Introducing the Catalog
Chapter 6: A First Set of Refactorings
Combine Functions into Transform
Replace Inline Code with Function Call
Replace Derived Variable with Query
Chapter 10: Simplifying Conditional Logic
Consolidate Conditional Expression
Replace Nested Conditional with Guard Clauses
Replace Conditional with Polymorphism
Replace Constructor with Factory Function
Chapter 12: Dealing with Inheritance
Replace Type Code with Subclasses
Replace Subclass with Delegate