🎉 Hooray! After 3 years of work, I've finally released the ebook on design patterns! Check it out »


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

Dirty Code

While dirty code is often result of laziness and incompetence, it can also pile-up due to shortcuts taken during development process.

Clean Code

Clean code is code that is easy to read, understand and maintain. Clean code makes software development predictable and increases the quality of a resulting product.

Refactoring Process

Performing refactoring step-by-step and running tests after each change are key elements of refactoring that make it predictable and safe.

Code Smells

Code smells are indicators of problems that can be addressed during refactoring. Code smells are easy to spot and fix, but they may be just symptoms of a deeper problem with code.

Refactoring Techniques

Refactoring techniques describe actual refactoring steps. Most refactoring techniques have their pros and cons. Therefore, each refactoring should be properly motivated and applied with caution.

Premium Course

21 code smells, 66 refactorings
Interactive examples in Java/C#/PHP
No time limits. Study at your own pace