Chapter 2: Finding “Bad Smells” in Code
Chapter 3: Introduction to Refactoring
Chapter 4: Principles and Rules
Chapter 5: Test-First Development
Chapter 7: Structuring Behavior
Chapter 8: Changing Class Responsibilities
Chapter 9: Dealing with Data Rationalization
Chapter 10: Reducing to Essential Conditional Executions
Chapter 11: Simplifying Method Calls
Chapter 12: Simplifying Generalization Relationships
3.15.10.2