Welcome to Tactical Refactoring!
The ability to write maintainable code is key to your long-term happiness as a developer.
I'm Step Aument, compassionate coder and technical leader.
I spent years of my career thinking that the inevitable trajectory of any software project was to start out as a pristine greenfield codebase, easy and quick to change, and fun to work to work with. But over the months it would become more and more complicated and brittle with changes in one area inexplicably breaking things far afield.
And my only hope for happiness was to get a new job working on a brand new app, just to repeat the cycle.
But over the years, I’ve learned a secret.
That cycle is not inevitable. It is possible to overcome software entropy. It is possible for an app to stay pristine, easy and quick to change, and fun to work with. It is possible for a codebase to actually improve over time.
In this course, I’ll teach you the Tactical Refactoring Method - my approach for taking working but ugly code and refactoring it into something that the next developer will be happy to see, which is probably me in six months after I’ve forgotten all the context I had in my head when I created it.
The Tactical Refactoring Method allows you to:
- take any code
- evaluate it
- turn it into tested, maintainable code
- systematic, step-by-step approach
I’ll teach you how I leave code better than I found it, and most importantly - maintainable.
This skill will set you up to add massive value to any software team and propel you farther down the road towards becoming a senior developer or technical lead.
After an introduction to the method, the approach we are going to take is to walk through two extended refactoring examples. Along the way I’ll highlight the techniques I’m using, the code smells and anti-patterns we encounter, and share some of my best tips on addressing them.
You’ll learn a few techniques that I use including:
- top-down, optimistic coding
- the squint test
- scanning for smells
- picking low-hanging fruit
In the end, you will have the framework you need to create clean, maintainable code.
Let’s get started!