Author: Martin Fowler
Refactoring, Improving the Design of Existing Code
You will most certainly have heard of refactoring as a concept. You will most likely also have said that you are refactoring your code, and heard others say it. But I find that many don’t know the original definition of refactoring. This book will teach you exactly that. This is the original piece that properly defined the practice, and it also contains the many of the most common refactoring patterns.
It has been released in two editions. The first is just as good as the second. But the second is more updated and probably more inclusive of the next generation of engineers. Some of the refactoring names have changed. If you are buying this book, you should get the second edition. But if you find the original there is nothing wrong with that either.

