By Joshua Kerievsky

Did you ever want to turn a messy, complex software design into simple, safe code? Refactoring provides the tools and techniques for safely improving your software designs. Immerse yourself in Refactoring exercises featuring our "look-over-your-shoulder" technology that gives you expert feedback. Build strong Refactoring skills by learning how to use powerful tools and proven techniques.



Get this Album

Volume Licensing

Have Any Questions?

Highlights

Instant Critiques: Take a refactoring exercise and get instant feedback from our automated band of experts. Learn more...
Expert Videos: Learn tools & techniques by watching short videos from industry experts. Learn more...

Integrated Forums: Ask questions, get expert replies and read fascinating discussions. Learn more...

Includes

  • 4-6 hours of content
  • 146 pages
  • Refactoring Strategies & Tactics
  • 7 Interactive quizzes
  • 23 Videos
  • 5 exercises
  • Platform-independent code
  • Support for Visual Studio
  • Support for Eclipse CDT
  • Uses Google Test

Contents

You Are Here 3
Learning to Refactor 4
Baby Steps 12
The Hippocratic Oath 13
Refactoring Safely 14
The Rhythm of Refactoring 15
How Would You Refactor This? 16
Two Refactoring Styles 17
Round One 🎦 18
Small Steps Quiz 19
Round Two 🎦 20
Refactoring Rhythm Quiz 21
When We Say Baby, We Mean Baby 22
Ready For A Challenge? 24
Refactoring a Method ← Click to Preview 25
Consolidate Conditional Expression 26
Extract Hierarchy 27
Extract Superclass 28
Hide Method 29
Inline Method 30
Finding Refactorings in Code 31
Code Qualities & More Refactorings 32
Finding More Refactorings in Code 33
No IDE, No Excuse. 35
Manual Refactoring Demonstration 36
Automated Refactoring Tools in C++ 37
Why Record? 39
The Steps To Take 40
Step 1. Download the Exercise 41
Step 2. Import the Exercise 42
Step 3. Perform the Exercise 43
Step 4. Upload the Archive 44
Step 5. Critique Your Performance 45
Remaining Issues 46
Carry On! 47
Automated Refactorings 49
An Exercise To Give You Experience 50
Critiquing Your Performance 51
Download the Exercise 52
Exercise Instructions 53
Upload Your Exercise 54
A Graph of Your Refactoring & Testing Activity 55
Your Critique Results 56
Your Customized Feedback 57
Automated Refactoring Solution 🎦 58
Refactoring Strategies & Tactics 60
Refactoring Strategy: Piecemeal Refactoring 61
Divide & Conquer Video 🎦 62
Tactic: Isolate-Improve-Inline 63
Refactoring Tactic: Rejected Parameter 64
Rejected Parameter Video 🎦 65
Introducing Smellections 67
Refactoring Smellections: Part 1 68
A Smell In Collection 🎦 69
Two Smells In AbstractList and AbstractSet 🎦 70
Removing A Long Method Smell From List 71
Assessing The Exercise 72
Download the Exercise 73
Refactoring Instructions 74
Upload Your Exercise 75
A Graph of Your Refactoring & Testing Activity 76
Your Critique Results 77
Your Customized Feedback 78
Smellections Exercise Part 1 Solution 79
Removing Collection 🎦 80
Removing AbstractList & AbstractSet 🎦 81
Refactoring to a Composed Method 🎦 ← Click to Preview 82
Refactoring Smellections: Part 2 84
A Refused Bequest Smell 🎦 85
Assessing The Exercise 86
Download the Exercise 87
Your Mission 88
Upload Your Exercise 89
A Graph of Your Refactoring & Testing Activity 90
Your Critique Results 91
Your Customized Feedback 92
Smellections Exercise Part 2 Solution 93
Removing Map from the Hierarchy 🎦 94
Refactoring Smellections: Part 3 96
Smells in AbstractCollection 97
Don't Fix Bugs 98
Assessing The Exercise 99
Refactoring Instructions 100
Download the Exercise 101
Your Mission 102
Upload Your Exercise 103
A Graph of Your Refactoring & Testing Activity 104
Your Critique Results 105
Your Customized Feedback 106
Smellections Exercise Part 3 Solution 107
Watch Out for Memory Leaks 108
Pulling Up Duplicated List and Set Fields 🎦 109
Cleaning Up AbstractCollection AddAll 🎦 110
Pulling Up Duplication From List and Set 🎦 111
Pulling Up Add 🎦 112
Removing AddAll from Set 🎦 113
Refactoring Rash 115
Strategy: Graceful Retreat 116
Strategy: Gradual Cutover 117
Strategy: Nesting 118
Refactoring Smellections: Part 4 120
Primitive Obsession In Map 121
A Temporary Field In Map 122
Managing A Change With Scaffolding 123
Assessing The Exercise 124
Download the Exercise 125
Your Mission 126
Upload Your Exercise 127
A Graph of Your Refactoring & Testing Activity 128
Your Critique Results 129
Your Customized Feedback 130
Part 4 Solution 🎦 131
Narrowed Change 133
Narrowed Change Video 🎦 134
Parallel Change 135
Parallel Change Video 🎦 ← Click to Preview 136
Experiencing Legacy Code ← Click to Preview 138
Poorly Written Driving Directions 139
Directions Deconstructed 🎦 140
Simple, Clear & Concise Directions 141
What Directions Will You Take? 142
Urban Blight & Renewal 143
Related Books 145
Conclusion: What's Next? 146

Related Items

Supported Browsers

  • Latest Firefox
  • Internet Explorer 8+
  • Latest Chrome
  • Latest Safari

Operating Systems

  • Windows
  • Linux
  • Mac OS X

Development Tools

You can use whatever developments tools you prefer. If you do use an IDE (Integrated Development Environment), many (though not all) of our labs come with projects pre-configured for Eclipse, IntelliJ and Visual Studio.

Speakers or headphones are required for our videos.

Flash is required to view charts or watch videos — download for free.