Alchemical Code Rejuvenation

By Uberto Barbini

The first step to improve legacy code seems a catch 22. You cannot refactor without tests and you cannot test without refactoring first. We will explore how can we solve this deadlock.

This is an hands-on workshop to show some original techniques to refactor efficiently big code bases which I used while working in investment banks. The goal is to be able to work in a TDD fashion on big legacy application without risky rewrites or big refactoring. Instead we will see how to separate and disentangle small bits of code at time.

We will try to simulate a hard-to-test legacy code base and we will use some meta-refactoring techniques to be able to clean up the code, without. We will also focus on how to use TDD "to design at a sustainable pace" and how to use tests to better listen to code.