This is a classic book, you will find there lots of examples how to reactor programming code and recommendations how to change it , so that after each refactoring you will get stable code base.
Authors speak about version control branches and critiquing idea of branch, which I totally agree , brunching is kind of mess with modern software projects.
He speaks about test’s in legacy code and enumerates the signs of bad code “smells” and how to encapsulate classes and functions, so that you will eventually would not feel bad about yourself.
Martin Fowler present code example’s (most of them are java script code) and discuss his thinking process how to deal with particular difficult situation.
Overall, my impressions are this book some sort of a workbook, which was created during actual work with legacy code, here and there you will find “nuggets” of wisdom, but for me I already knew many techniques of how to go about particular problem, still that was interesting experience.
Whom I can recommend it?
Well for the people for software developers it would be helpful , still this book based details , you don’t find high abstraction ideas, I prefer personally to think in high abstractions and only after that to go to details.
So this it, an interesting book about refactoring which will give you lots of good practice lessons.