You Are Here | 3 |
What Is Legacy? | 4 |
Why Care About Legacy? | 5 |
The Top Three Activities With Legacy Code | 6 |
Testability | 7 |
Hurdles To Microtesting | 8 |
How To Proceed? | 9 |
A Chicken And Egg Problem? | 10 |
The Legacy Stance | 12 |
Element One: Stop Digging ← Click to Preview | 13 |
Element Two: Start Stepping | 14 |
Element Three: More Microtests! | 15 |
Some Important Non-Technical Techniques | 16 |
Developer Sign-off | 17 |
Lunch and Learn (Study Group) | 18 |
Lunch and Learn (Lottery) | 19 |
The Big Visible Chart | 20 |
Refactoring Budget | 21 |
Now, Back To Your Regularly Scheduled Technique | 22 |
Extract and Override: The Universal Pliers | 24 |
The Context: An Awkward Chunk Of Code | 25 |
The Technique: Isolate And Test Around | 26 |
Diagrams | 27 |
How Much Code To Extract? ← Click to Preview | 28 |
Why You Should NOT Use Extract And Override | 29 |
Why You SHOULD Use Extract And Override | 30 |
Order Processing | 32 |
Download Starting Code | 33 |
Investigation Time | 34 |
Make OrderTest Fast!
|
35 |
Extract And Override Solution 🎦 ← Click to Preview | 36 |
Welcome To CRRAP! | 38 |
A Typical Piece of CRRAP | 39 |
Brief Overview Of The Output | 40 |
The Cheat Sheet | 41 |
The Rules Of The Game | 42 |
Start with the Universals | 44 |
Step 1: Reformat and Commit | 45 |
Step 1: Our Version 🎦 | 46 |
Step 2: Eliminate the Noise | 47 |
Step 2: Our Version 🎦 | 48 |
Step 3: Get To Testability | 49 |
Crazy Mike Hits A Dead End! 🎦 | 50 |
Legacy Pattern: Mini-Scoop It! 🎦 | 51 |
Legacy Pattern: Maxi-Scoop 🎦 | 52 |
Legacy Pattern: Tests As Probes 🎦 | 53 |
Pindown Tests | 54 |
Exercise: Pin Down One Path | 55 |
Where to from here? | 57 |
The Mission ← Click to Preview | 58 |
Technique: Control Your Namespace ← Click to Preview | 59 |
Technique: Think Small | 60 |
Technique: Keep Tests Excellent ← Click to Preview | 61 |
The Cheat Sheet Again | 62 |
Getting Started | 63 |
Hints Page | 64 |
Hints Page 2 | 65 |
A Solution | 66 |
What is Static Cling? | 68 |
A Class With Static Variables | 69 |
Unexpected Test Failure | 70 |
A Bad Solution: Reset Shared Data | 71 |
A Better Solution: Remove Side-Effects | 72 |
Creation Complexity | 73 |
Solution: A Factory | 74 |
Exercise: Static Cling | 76 |
Problems! | 77 |
A Close Look At The SongPlayer Class | 78 |
Test Failures | 79 |
Different Failures? | 80 |
Download The Code | 81 |
Your Mission | 82 |
Our Solution | 83 |
What About Privates? | 85 |
How Interesting Are Privates? | 86 |
If They Are Not Interesting, Don't Bother Testing Them | 87 |
Ease the Restriction | 88 |
How Private Are Privates? | 89 |
Test Derived Class | 90 |
The Refactoring Approach: Extract a Helper Class ← Click to Preview | 91 |
Testing Privates While Maintaining Your Dignity | 92 |
Privates, Design, And Testability | 93 |
Conclusion: Where to Next? | 95 |
All of our programming exercises come with projects pre-configured for IntelliJ, Eclipse and Visual Studio.
Speakers or headphones are required for our videos.