Refactoring

The Art of Safely Improving Software Designs — C++ Edition

Art for Refactoring Check Out A Preview

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.

Highlights

Instant Critiques
Instant Critiques: Take a refactoring exercise and get instant feedback from our automated band of experts. Learn more...
Expert Videos
Expert Videos: Learn tools & techniques by watching short videos from industry experts. Learn more...
Integrated Forums
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
What Is Refactoring? 6
An Example Refactoring 7
Refactoring Is Revision ← Click to Preview 8
Revision Of The Declaration Of Independence ← Click to Preview 9
What Motivates Us to Refactor? 10
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
Download the Exercise 41
Import the Exercise 42
Perform the Exercise 43
Upload the Archive 44
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

Volume Licensing

Have Any Questions?

Highlights

Instant Critiques
Instant Critiques: Take a refactoring exercise and get instant feedback from our automated band of experts. Learn more...
Expert Videos
Expert Videos: Learn tools & techniques by watching short videos from industry experts. Learn more...
Integrated Forums
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
What Is Refactoring? 6
An Example Refactoring 7
Refactoring Is Revision ← Click to Preview 8
Revision Of The Declaration Of Independence ← Click to Preview 9
What Motivates Us to Refactor? 10
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
Download the Exercise 41
Import the Exercise 42
Perform the Exercise 43
Upload the Archive 44
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