Refactoring: Improving the Design of Existing Code (My Notes and Highlights)
Link: Refactoring: Improving the Design of Existing Code (My Notes and Highlights): "I recently re-read Martin Fowler's excellent book on refactoring. It's about improving the design and quality of your code in small steps, without changing external behavior. The book contains detailed descriptions of refactorings, with motivation, mechanics, and an example for each. A must-read."
This book is a classic, and recently they came out with an update using Javascript instead of Java. Here's one person's commentary on that book.