Working Effectively with Legacy Code — Michael C. Feathers
Agile Software Development
Working effectively with Legacy Code is one of those books that should be on every development team’s bookshelf. Many teams are working with code that has been around for quite some time, created before the team valued (or needed) practices like Test-Driven Development and SOLID principles.
This book is filled with practical guidance on evolving code as you deliver, making hard-and-risky changes into predictable-and-safe. Read this book and you’ll see how to create “seams” in your code, extracting the hidden classes into testable and easier to change units.