Part 3. Beyond refactoring—improving project workflow and infrastructure
In this third and final part of this book, we’re going to shift our focus away from what software we should be writing and look at how we build and maintain that software.
This is a broad topic that includes setting up your local machine for efficient software development, managing the multiple environments in which the software needs to run, using a version control system effectively when working in a team, and deploying the software to production quickly and reliably.
I’ll introduce quite a few tools over the course of the next three chapters, including Vagrant, Ansible, Gradle, and Fabric. Don’t worry if you’ve never used these tools, or if you’re already happily using a different set of tools to do the same things. I’m using them simply for the sake of providing concrete examples, so that you can learn the underlying techniques. Where applicable, I’ll provide information about similar tools that you can use.
In the final chapter I’ll give you some tips on how to prevent the software you write today from becoming tomorrow’s legacy horror story.