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
  • 152 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 You'll Take 40
Step 1. Install the GTest Result Viewer (Optional) 41
Step 2. Download the Exercise 42
Step 3. Import the Exercise 43
Step 4. Perform the Exercise 44
Step 5. Upload the Archive 45
Step 6. Critique Your Performance 46
Remaining Issues 47
Carry On! 48
Automated Refactorings 50
An Exercise To Give You Experience 51
Critiquing Your Performance 52
Download the Exercise 53
Exercise Instructions 54
Upload Your Exercise 55
A Graph of Your Refactoring & Testing Activity 56
Your Critique Results 57
Your Customized Feedback 58
Automated Refactoring Solution 59
Refactoring Strategies & Tactics 61
Refactoring Strategy: Piecemeal Refactoring 62
Divide & Conquer Video 63
Tactic: Isolate-Improve-Inline 64
Refactoring Tactic: Rejected Parameter 65
Rejected Parameter Video 66
Introducing Smellections 68
Refactoring Smellections: Part 1 69
A Smell In Collection 70
Two Smells In AbstractList and AbstractSet 71
Removing A Long Method Smell From List 72
Assessing The Exercise 73
Installing Our Plugin 74
Download the Exercise 75
Refactoring Instructions 76
Upload Your Exercise 77
A Graph of Your Refactoring & Testing Activity 78
Your Critique Results 79
Your Customized Feedback 80
Smellections Exercise Part 1 Solution 81
Removing Collection 82
Removing AbstractList & AbstractSet 83
Refactoring to a Composed Method ← Click to Preview 84
Refactoring Smellections: Part 2 86
A Refused Bequest Smell in Smellections 87
Assessing The Exercise 88
Installing Our Plugin 89
Download the Exercise 90
Your Mission 91
Upload Your Exercise 92
A Graph of Your Refactoring & Testing Activity 93
Your Critique Results 94
Your Customized Feedback 95
Smellections Exercise Part 2 Solution 96
Removing Map from the Hierarchy 97
Refactoring Smellections: Part 3 99
Smells in AbstractCollection 100
Don't Fix Bugs 101
Assessing The Exercise 102
Installing Our Plugin 103
Refactoring Instructions 104
Download the Exercise 105
Your Mission 106
Upload Your Exercise 107
A Graph of Your Refactoring & Testing Activity 108
Your Critique Results 109
Your Customized Feedback 110
Smellections Exercise Part 3 Solution 111
Watch Out for Memory Leaks 112
Pulling Up Duplicated List and Set Fields 113
Cleaning Up AbstractCollection AddAll 114
Pulling Up Duplication From List and Set 115
Pulling Up Add 116
Removing AddAll from Set 117
Refactoring Rash 119
Refactoring Strategy: Graceful Retreat 120
Refactoring Strategy: Gradual Cutover 121
Refactoring Strategy: Nesting 122
Refactoring Smellections: Part 4 124
Primitive Obsession In Map 125
A Temporary Field In Map 126
Managing A Change With Scaffolding 127
Assessing The Exercise 128
Installing Our Plugin 129
Refactoring Instructions 130
Download the Exercise 131
Your Mission 132
Upload Your Exercise 133
A Graph of Your Refactoring & Testing Activity 134
Your Critique Results 135
Your Customized Feedback 136
Smellections Exercise Part 4 Solution 137
Narrowed Change 139
Narrowed Change Video 140
Parallel Change 141
Parallel Change Video ← Click to Preview 142
Experiencing Legacy Code ← Click to Preview 144
Poorly Written Driving Directions 145
Driving Directions Deconstructed 146
Simple, Clear & Concise Directions 147
What Directions Will You Take? 148
Urban Blight & Renewal 149
Related Books 151
Conclusion: What's Next? 152

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.