Software Engineering Professional

Book Profile

Refactoring Improving the Design of Existing Code

Martin Fowler · 2018

A guide to improving the design of existing software by applying a series of small, behavior-preserving changes called refactorings, enabling faster development and higher quality code.

Get the book →

Over time, even the best-designed software tends to decay, becoming complex, brittle, and difficult to change. This 'technical debt' slows down development, increases bugs, and frustrates developers. 'Refactoring' provides a disciplined, proven solution. It's a process of restructuring code in small, safe steps, each one improving the internal design without changing the code's external behavior. This book, written by software design expert Martin Fowler, explains the 'why' and 'when' of refactoring, details how to identify 'bad smells' in code that signal a need for improvement, and provides a comprehensive catalog of over 60 specific refactoring techniques with step-by-step instructions and examples. By integrating refactoring into your daily workflow, you'll not only clean up your code but also deepen your understanding of it, find bugs more easily, and ultimately program faster, creating a healthy, evolvable codebase that accelerates future development.

What it argues

This model illustrates how the practice of refactoring, enabled by self-testing code, improves the health of a codebase and developer understanding. These improvements, in turn, lead to reduced bugs and increased long-term development speed.

Key ideas it contributes