By Joshua Kerievsky, Mike Hill

We selected 10 of our best exercises from 6 albums to help you build your Agile engineering skills. You will hunt for smells in legacy code, refactor a design using automated tools, remove duplication across subclasses, write microtests against legacy code, perform test-driven development on two problems, change a design to use a listening fake, refactor a design to fake a singleton, and perform our mock object exercise.



Get this Album

Volume Licensing

Have Any Questions?

Highlights

Instant Critiques: Take an exercise and get instant feedback from our 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

  • 8-11 hours of content
  • 145 pages
  • 10 Exercises
  • 17 solution videos
  • Support for Eclipse
  • Support for IntelliJ

Contents

Smellections Introduction 3
The Smellections Scavenger Hunt 4
The Solutions in Depth 5
Smells In Collection 6
Smells In AbstractList and AbstractSet 7
Smells In AbstractCollection 8
Smells In List 9
Smells In Set 10
Smells In Map ← Click to Preview 11
Smellections Hunt Conclusion 12
Automated Refactorings 14
Automated Refactoring Demonstration 15
Perfect Tools? 16
An Exercise To Give You Experience 17
Critiquing Your Performance 18
Download the Exercise 19
Exercise Instructions 20
Upload Your Exercise 21
A Graph of Your Refactoring & Testing Activity 22
Your Critique Results 23
Your Customized Feedback 24
Automated Refactoring Solution 25
In Need Of An Adapter ← Click to Preview 27
Choosing A Preferred Interface 28
Problem Source Code 29
Refactoring Guidance 30
Critiquing Your Performance 31
Download, Build & Test Instructions 32
Upload Your Exercise 33
A Graph of Your Refactoring & Testing Activity 34
Your Critique Results 35
Your Customized Feedback 36
Solution Video Step 1: Extract Interface ← Click to Preview 37
Solution Video Step 2: Extract Class 38
Solution Video Step 3: Move Method 39
Solution Video Step 4: Implement Interface 40
Solution Video Step 5: Pull Up Fields & Methods 41
Solution 42
Writing Basic Tests 44
The Tail Data 45
Tail Priorities 46
This Design Sucks 47
Comparing Tails 48
Assessing the Exercise 49
Installing the Recorder 50
Get the Starting Code 51
The Dumbest Case 52
Testing the Dumbest Case 53
The Same IDs 54
Now We're Making Progress! 55
The Same IDs Could Differ 56
How About Now? 57
Keep The Axe Sharp! 58
Sharing Data Creation 59
A Perfect Test? 60
Designing Your Test Data 61
Brain-Twister: Test Data vs. Coverage 62
The Rest of the Story 63
Upload Your Exercise 64
How You Scored 65
Your Customized Feedback 66
Our Solution 67
Practice, Practice, Practice ← Click to Preview 69
Four Priorities 70
The TailQueue Code 71
Unqueueing Tails ← Click to Preview 72
Assessing the Exercise 73
Installing the Recorder 74
Download the Next Version 75
The TailQueue Mission 76
Upload Your Exercise 77
How You Scored 78
Your Customized Feedback 79
Instructor Solution Part 1: Testing Basic Retrieval 80
Instructor Solution Part 2: Testing Preferences 81
The Purpose of this Exercise 83
Critiquing Your Performance 84
Proceed with Caution 85
Installing Our Plugin 86
Download the Code 87
Exercise Instructions 88
Upload Your Work 89
A Graph of Your TDD Activity 90
Your Critique Results 91
Your Customized Feedback 92
Our Solution 93
TDDing Big Bill's Billing System ← Click to Preview 95
Some Advice Before You Begin 96
Critiquing Your Performance 97
Installing Our Plugin 98
Setup 99
An Exercise Composed of Four Tasks 100
Task 1: Calculate A Simple Phone Bill 101
Task 2: Calculate Excess Minutes 102
Task 3: Calculate Family Discount 103
Task 4: Calculate Complete Phone Bill 104
Upload Your Work 105
A Graph of Your TDD Activity 106
Your Critique Results 107
Your Customized Feedback 108
Task 1 Solution ← Click to Preview 109
Task 2 Solution 110
Task 3 Solution 111
Task 4 Solution 112
An Alternative Solution 113
A Third Solution 114
Introduction 116
The Code 117
Existing Microtests 118
Download The Code 119
The First Case Of Slowness 120
Our Solution 121
Great Microtests 122
Make A Stub For Shipper 123
Slipping A Shipper Stub Solution ← Click to Preview 124
Making a Listening Fake 125
Listening Fake Solution 126
Exercise: Faking A Singleton 128
A First Attempt 129
Download The Code 130
Double Awkwardness 131
Hints 132
Our Solution 133
Automocking Expectations 135
The Challenge 136
The Code 137
Awkwardness ← Click to Preview 138
Download The Code 139
Your Mission: The Simplest Case 140
Solution For The Simplest Case 141
The Second Task 142
Solution For The Second Task 143
The Last Task 144
Solution For The Last Task 145

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.