(brief contents
1 Introduction
2 Getting to Know Refactoring; the What, Why, and Why Now?
PART 1: LEARN BY REFACTORING A COMPUTER GAME
3 Using Functions, to Break Up Long Functions
4 Using Objects, to Eliminate Complex if Statements
5 Unifying code to simplify and enable reuse
6 Encapsulate, to Localize Invariants
PART 2: TAKING WHAT YOU HAVE LEARNED INTO THE REAL WORLD
7 Work With the Compiler
8 Avoid Comments
9 Love Deleting Code
10 Never be Afraid to Add Code
11 Avoid Optimizations and Generality
12 Follow the Structure in the Code
13 Bad Code Should Look Bad
14 Wrapping Up)