Refactoring

The Art of Safely Improving Software Designs — Java 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
  • 158 pages
  • Refactoring Strategies & Tactics
  • 7 Interactive quizzes
  • 23 Videos
  • 5 exercises
  • Support for Eclipse
  • Support for IntelliJ

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
Why Record? 35
The Steps To Take 36
Install the Recorder 37
Download the Exercise 38
Import the Exercise 39
Perform the Exercise 40
Upload the Archive 41
Critique Your Performance 42
Remaining Issues 43
Carry On! 44
Automated Refactorings 46
Automated Refactoring Demo 47
Perfect Tools? 48
An Exercise To Give You Experience 49
Critiquing Your Performance 50
Download the Exercise 51
Exercise Instructions 52
Upload Your Exercise 53
A Graph of Your Refactoring & Testing Activity 54
Your Critique Results 55
Your Customized Feedback 56
Automated Refactoring Solution 57
Refactoring Strategies & Tactics 59
Refactoring Strategy: Piecemeal Refactoring 60
Divide & Conquer Video 61
Tactic: Isolate-Improve-Inline 62
Refactoring Tactic: Rejected Parameter 63
Rejected Parameter Video 64
Introducing Smellections 66
Refactoring Smellections: Part 1 67
A Smell In Collection 68
Two Smells In AbstractList and AbstractSet 69
Removing A Long Method Smell From List 70
Assessing The Exercise 71
Installing Our Plugin 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
Caller Creates 84
Caller Swap 85
Caller Swap Video 86
Encapsulated Dependency 87
Encapsulated Dependency Video 88
Refactoring Smellections: Part 2 90
A Refused Bequest Smell 91
Assessing The Exercise 92
Installing Our Plugin 93
Download the Exercise 94
Your Mission 95
Upload Your Exercise 96
A Graph of Your Refactoring & Testing Activity 97
Your Critique Results 98
Your Customized Feedback 99
Smellections Exercise Part 2 Solution 100
Removing Map from the Hierarchy 101
Refactoring Smellections: Part 3 103
Smells in AbstractCollection 104
Don't Fix Bugs 105
Assessing The Exercise 106
Installing Our Plugin 107
Refactoring Instructions 108
Download the Exercise 109
Your Mission 110
Upload Your Exercise 111
A Graph of Your Refactoring & Testing Activity 112
Your Critique Results 113
Your Customized Feedback 114
Smellections Exercise Part 3 Solution 115
Pulling Up Duplicated List and Set Fields 116
Cleaning Up AbstractCollection AddAll 117
Pulling Up Duplication From List and Set 118
Pulling Up Add 119
Removing AddAll from Set 120
Refactoring Rash 122
Strategy: Graceful Retreat 123
Strategy: Gradual Cutover 124
Strategy: Nesting 125
Refactoring Smellections: Part 4 127
Primitive Obsession In Map 128
A Temporary Field In Map 129
Managing A Change With Scaffolding 130
Assessing The Exercise 131
Installing Our Plugin 132
Download the Exercise 133
Your Mission 134
Upload Your Exercise 135
A Graph of Your Refactoring & Testing Activity 136
Your Critique Results 137
Your Customized Feedback 138
Part 4 Solution 139
Narrowed Change 141
Narrowed Change Video 142
Parallel Change 143
Parallel Change Video ← Click to Preview 144
Unified Methods 145
Unified Methods Video 146
Evolved Target 147
Evolved Target Video 148
Experiencing Legacy Code ← Click to Preview 150
Poorly Written Driving Directions 151
Directions Deconstructed 152
Simple, Clear & Concise Directions 153
What Directions Will You Take? 154
Urban Blight & Renewal 155
Related Books 157
Conclusion: What's Next? 158

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
  • 158 pages
  • Refactoring Strategies & Tactics
  • 7 Interactive quizzes
  • 23 Videos
  • 5 exercises
  • Support for Eclipse
  • Support for IntelliJ

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
Why Record? 35
The Steps To Take 36
Install the Recorder 37
Download the Exercise 38
Import the Exercise 39
Perform the Exercise 40
Upload the Archive 41
Critique Your Performance 42
Remaining Issues 43
Carry On! 44
Automated Refactorings 46
Automated Refactoring Demo 47
Perfect Tools? 48
An Exercise To Give You Experience 49
Critiquing Your Performance 50
Download the Exercise 51
Exercise Instructions 52
Upload Your Exercise 53
A Graph of Your Refactoring & Testing Activity 54
Your Critique Results 55
Your Customized Feedback 56
Automated Refactoring Solution 57
Refactoring Strategies & Tactics 59
Refactoring Strategy: Piecemeal Refactoring 60
Divide & Conquer Video 61
Tactic: Isolate-Improve-Inline 62
Refactoring Tactic: Rejected Parameter 63
Rejected Parameter Video 64
Introducing Smellections 66
Refactoring Smellections: Part 1 67
A Smell In Collection 68
Two Smells In AbstractList and AbstractSet 69
Removing A Long Method Smell From List 70
Assessing The Exercise 71
Installing Our Plugin 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
Caller Creates 84
Caller Swap 85
Caller Swap Video 86
Encapsulated Dependency 87
Encapsulated Dependency Video 88
Refactoring Smellections: Part 2 90
A Refused Bequest Smell 91
Assessing The Exercise 92
Installing Our Plugin 93
Download the Exercise 94
Your Mission 95
Upload Your Exercise 96
A Graph of Your Refactoring & Testing Activity 97
Your Critique Results 98
Your Customized Feedback 99
Smellections Exercise Part 2 Solution 100
Removing Map from the Hierarchy 101
Refactoring Smellections: Part 3 103
Smells in AbstractCollection 104
Don't Fix Bugs 105
Assessing The Exercise 106
Installing Our Plugin 107
Refactoring Instructions 108
Download the Exercise 109
Your Mission 110
Upload Your Exercise 111
A Graph of Your Refactoring & Testing Activity 112
Your Critique Results 113
Your Customized Feedback 114
Smellections Exercise Part 3 Solution 115
Pulling Up Duplicated List and Set Fields 116
Cleaning Up AbstractCollection AddAll 117
Pulling Up Duplication From List and Set 118
Pulling Up Add 119
Removing AddAll from Set 120
Refactoring Rash 122
Strategy: Graceful Retreat 123
Strategy: Gradual Cutover 124
Strategy: Nesting 125
Refactoring Smellections: Part 4 127
Primitive Obsession In Map 128
A Temporary Field In Map 129
Managing A Change With Scaffolding 130
Assessing The Exercise 131
Installing Our Plugin 132
Download the Exercise 133
Your Mission 134
Upload Your Exercise 135
A Graph of Your Refactoring & Testing Activity 136
Your Critique Results 137
Your Customized Feedback 138
Part 4 Solution 139
Narrowed Change 141
Narrowed Change Video 142
Parallel Change 143
Parallel Change Video ← Click to Preview 144
Unified Methods 145
Unified Methods Video 146
Evolved Target 147
Evolved Target Video 148
Experiencing Legacy Code ← Click to Preview 150
Poorly Written Driving Directions 151
Directions Deconstructed 152
Simple, Clear & Concise Directions 153
What Directions Will You Take? 154
Urban Blight & Renewal 155
Related Books 157
Conclusion: What's Next? 158

Related Items