We all have legacy code, meaning profitable code that we’re afraid to change. It doesn’t matter who wrote it, in which language, nor when. It matters that we feel the fear now and need to deal with it. Rewrite or refactor? How do we write tests? There’s so much to change; how do we get started?
In the typical programmer’s day job, there’s no time to learn how to do this. We’re already behind schedule and the cost of fixing the legacy code is crushing us. We need a way to learn how to do this safely, correctly, and eventually, even quickly. That’s what Surviving Legacy Code is about.
J. B. Rainsberger (Twitter @jbrains, https://www.jbrains.ca) helps software companies better satisfy their customers and the businesses they support. Over the years, he has learned to write valuable software, turned himself into a joy to work with, and built a life that he loves. He has traveled the world sharing what he's learned, hoping to help other people get what they want out of work and out of their lives. Not only does he consult with and train for companies, he also provides personalized consulting and online training through http://online-training.jbrains.ca, where he helps even more people start getting the advice they need with minimal investment. He lives in Atlantic Canada with his wife, Sarah.
- When to refactor and when to rewrite, and how to do that safely.
- The killer technique for exposing in glorious detail exactly where the code wants us to break it apart.
- How to use statistical sampling and logs to cobble together the beginnings of a test suite.
- How to sterilise a legacy environment before even trying to change the code.
- How to crack the chicken-and-egg problem: I need to write tests in order to refactor, and I need to refactor in order to write tests.
- A computer, with a working software development environment.
- Something to write with, and something to write on. I suggest index cards and a notebook.
- Install the development environment for the programming language you wish to use: Eclipse, IntelliJ IDEA, Visual Studio, vim, emacs, whatever you choose
- Install git
Any programmer forced to deal with code that strikes fear in their heart. That is, all programmers, eventually.