Refactoring is a disciplined technique for restructuring an existing body of code, altering its internal structure without changing its external behavior.

Martin Fowler in his site Refactoring

Code Smells

Code smells are indicators of potential problems in the code that may require refactoring. They are not bugs but rather signs that the code could be improved for better readability, maintainability, and extensibility.

The Samman Coaching Society provides a useful list of Code Smells.

Refactoring Catalog

The Refactoring Catalog by Martin Fowler provides a comprehensive list of refactoring from the second edition with summary information about each refactoring technique.

Other Resources

See also the collection of Refactorings from the Samman Coaching Society.

Each refactoring is described using the structure “Examine - Prepare - Implement - Clear” and includes safe steps to perform the design transformation.

Updated: