Refactoring is a controllable process of improving code without creating new functionality. Design Patterns are typical solutions to the commonly occurring problems in software design.
О сайте refactoring.guru
Refactoring and Design Patterns
Refactoring and Design Patterns