Refactoring an horrible codebase guided by tests

Sunday, 26 August, 9:00 AM to 12:00 PM
Giovanni Lodi, iflix

This workshop will teach how to refactor code using unit tests to ensure that no regression is introduced. It aims to be a very practical way to learn about Test Driven Development.

Often when learning about unit testing we read articles or watch tutorials that use toy examples. These are great to introduce the concepts behind TDD, but fail to bridge the gap with the world code.

In this workshop the attendees will get the chance to work on an actual horrible codebase, a TODO list app entirely written between UIAppDelegate and its view controllers.

We'll start from there and make it into a more sane codebase, one refactor at a time. By doing this we'll practice our testing and refactoring muscles.

To keep the audience engaged we'll setup as pairs and "play ping-pong". One individual will write a unit test, the other the code to make it pass. For each incremental refactor one pair from the audience will present their solution, giving a chance to the group to compare and discuss it.

Scaffold code will be provided to bridge the gaps when necessary, the focus is in finding ways to write tests for existing code and then to make that code better, not to write yet another UITableViewDataSource.

About Giovanni Lodi

Gio is a "made in Italy" software engineer with a passion for learning and incremental improvements, and pizza.

For the past 2 years he has been leading the iOS development team at iflix, the leading movie streaming service in the emerging markets. Before that he's been consulting on iOS test automation and infrastructure with startups, agencies and big companies across Melbourne.

On the side Gio explores ways to make software development more productive through his blog http://mokacoding.com and projects like https://xcodetips.com.>

Gio lives in the Mornington Peninsula south of Melbourne with his wife and son. Don't ask him a question about the Teenage Mutant Ninja Turtles, unless you're ready for a very long chat.