Hello world!

Refactoring.Guru makes it easy for you to discover everything you need to know about refactoring, design patterns, SOLID principles and other smart programming topics.

The primary purpose of this site is to show the big picture. I want to demonstrate how all these subjects intersect, how they work together and how they are still relevant. I don't pretend to be the inventor of these concepts–most of them were invented by others during the past 20 years. But I think that the connection between refactoring, patterns and general programming principles still remains a mystery for the majority of programmers. And this is the problem I would like to solve here.

P.S. While the project is constantly being updated, you can already find tons of info on refactoring and design patterns right here on the website. The progress can be tracked via email or on Facebook.

Alexander Shvets
The one-man band behind Refactoring.Guru


Refactoring is a systematic process of improving code without creating new functionality. Refactoring transforms a mess into clean code and simple design.

Learn more about Refactoring »

Design Patterns

Design Patterns are typical solutions to commonly occurring problems in software design. They are blueprints that can be taken and customized to solve a particular design problem in your code.

Learn more about Design Patterns »