This document lists 20 code smells, or structural patterns in code that suggest the presence of deeper problems, as catalogued by Martin Fowler. The code smells include alternative classes with different interfaces, comments, data classes, data clumps, divergent change, duplicated code, feature envy, inappropriate intimacy, large classes, lazy classes, long parameter lists, message chains, middle men, parallel inheritance hierarchies, primitive obsession, refused bequest, shotgun surgery, speculative generality, switch statements, and temporary fields.
This document lists 20 code smells, or structural patterns in code that suggest the presence of deeper problems, as catalogued by Martin Fowler. The code smells include alternative classes with different interfaces, comments, data classes, data clumps, divergent change, duplicated code, feature envy, inappropriate intimacy, large classes, lazy classes, long parameter lists, message chains, middle men, parallel inheritance hierarchies, primitive obsession, refused bequest, shotgun surgery, speculative generality, switch statements, and temporary fields.
This document lists 20 code smells, or structural patterns in code that suggest the presence of deeper problems, as catalogued by Martin Fowler. The code smells include alternative classes with different interfaces, comments, data classes, data clumps, divergent change, duplicated code, feature envy, inappropriate intimacy, large classes, lazy classes, long parameter lists, message chains, middle men, parallel inheritance hierarchies, primitive obsession, refused bequest, shotgun surgery, speculative generality, switch statements, and temporary fields.
1 Alternative Classes with Different Interfaces 2 Comments 3 Data Class 4 Data Clumps 5 Divergent Change 6 Duplicated Code 7 Feature Envy 8 Inappropriate Intimacy 9 Large Class 10 Lazy Class 11 Long Parameter List 12 Message Chains 13 Middle Man 14 Parallel Inheritance Hierarchies 15 Primitive Obsession 16 Refused Bequest 17 Shotgun Surgery 18 Speculative Generality 19 Switch Statements 20 Temporary Field