Refactoring
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.