Refactoring, write awesome code logo

Refactoring, write awesome code

Free

Catalog of code smells & refactoring techniques

FreeFree tier
Type
Open Source

About Refactoring, write awesome code

SourceMaking's Refactoring section is a comprehensive online resource that catalogs common code smells (bad programming practices) and provides detailed refactoring techniques to improve code structure. It categorizes smells into groups such as Bloaters, Object-Orientation Abusers, Change Preventers, Dispensables, and Couplers. For each smell, it explains the problem and suggests solutions. Similarly, refactoring techniques are organized into groups covering composing methods, moving features between objects, organizing data, simplifying conditional expressions, and simplifying method calls. This resource serves as a practical reference for developers aiming to write cleaner, more maintainable code.

Key Features

Categorizes code smells into Bloaters, Object-Orientation Abusers, Change Preventers, Dispensables, and Couplers
Provides detailed refactoring techniques for composing methods, moving features, organizing data, and simplifying conditionals/method calls
Explains each smell and technique with clear descriptions and examples
Offers a structured approach to improving code maintainability and readability

Pros & Cons

Pros
  • Comprehensive and well-organized coverage of code smells and refactoring techniques
  • Free and accessible online resource with no registration required
  • Provides clear explanations and practical examples for each concept
  • Useful for both beginners and experienced developers
Cons
  • Static website with no interactive code examples or exercises
  • Content may be overwhelming due to sheer volume of techniques and smells

Best For

Learning how to identify and fix code smells in existing projectsUnderstanding best practices in object-oriented programming and refactoringImproving code quality and reducing technical debtReference for software developers during code reviews or refactoring sessions