Working Effectively with Legacy Code
Michael Feathers
Get more out of your legacy systems: more performance, functionality, reliability, and manageability Is your code easy to change? Can you get nearly instantaneous feedback when you do change it? Do you understand it?
code-quality software-testing backend intermediate practical refactoring tdd unit-testing
clean code clean-code testing qa hands-on hands on