In this guided demo, we are going to look at 3 different techniques that are remarkably powerful in combination to cut through legacy code without having to go through the bother of reading or understanding it.
The techniques are:
Combination Testing: to get 100% test coverage quickly
Code Coverage as guidance: to help us make decisions about inputs and deletion
Provable Refactorings: to help us change code without having to worry about it.
In combination, these 3 techniques can quickly make impossible tasks trivial.
Will will be doing this on the Gilded Rose Kata, https://github.com/emilybache/GildedRose-Refactoring-Kata
It is extra beneficial if you try it out yourself first so you can see how your implementation would differ.
Format : Hands on workshop
Test Driven development is a combination for many microskills and a fluency that allows you to solve problems while focusing on the problem instead of the microskills.
This workshop will endeavor to learn the individual skills as well as build the fuency to use these skills with the additional burden of everyday work.
Prerequisites:
General coding knowledge in either: java, c#, c++, javascript or python (examples will be in all languages).
a laptop with language & editor. (list at the bottom)
note: this is a very active hands on workshop. Please be well rested the night before
Microskills:
Writing scenarios
Transforming scenarios to steps
Consume 1st programming
Using your Editor effectively
Verify results
Using Coverage
Separating code
Removing Duplication
Fake it till you make it.
Editors:
Consume First style TDD requires editor support. Here are the list of editor for the class. All are available for free or for a free 1 month trial.
java -> eclipse or intellij
c# -> visual studio with resharper
javascript -> webstorm
python -> pycharm
c++ -> clion or visual studio with resharper
Llewellyn Falco is an independent agile coach. He discovered strong-style pair programming. He is creator of the open source testing tool ApprovalTests( www.approvaltests.com ). He spends most of his time programming in Java and C# specializing in improving legacy code.He is the co-founder of TeachingKidsProgramming.org & co-author of Mob Programming Guidebook
If you would like to get a sample of him, check out his Practical Refactoring talk ( https://youtu.be/aWiwDdx_rdo )