Ning Developer Docs

Better Names for Martin Fowler’s “Refactoring Smells”

Martin Fowler's Refactoring (1999) is a landmark book for software engineering. It is a catalog of techniques for cleaning up code. Unfortunately, this remarkable book is tarnished by some frivolous names chosen for its list of "refactoring smells" (anti-patterns). Unlike the memorable pattern names from that other luminous book Design Patterns (1995) – Singleton, Observer, Visitor, etc. – the anti-pattern names in Refactoring sometimes degenerate into the ludicrous: Feature Envy, Inappropriate Intimacy, Primitive Obsession, Speculative Generality, ...

The worst part is that these names give little clue as to what they mean.

I would like to propose alternative names for some of Fowler's "refactoring smells". Many of the names are fine as is, but a number of them benefit from sober clarity of expression:

Old Name New Name
Alternative Classes with Different Interfaces Heterogeneous Interfaces
Data Class
Data Clumps
Divergent Change Schizophrenic Class
Duplicated Code
Feature Envy Satellite Method
Inappropriate Intimacy Internal Access
Incomplete Library Class
Large Class
Lazy Class Small Class
Long Method
Long Parameter List
Message Chains Temporary Variables
Middle Man Overdelegation
Parallel Inheritance Hierarchies
Primitive Obsession Procedural Code
Refused Bequest Weak Inheritance
Shotgun Surgery ?
Speculative Generality Overdesign
Switch Statements
Temporary Field
I would also like to improve on "Shotgun Surgery" (in which a modification involves touching code in several places), but I cannot think of an apt name. Any suggestions?

Views: 149


You need to be a member of Ning Developer Docs to add comments!

Join Ning Developer Docs

© 2024   Created by Ning Developer Admin.   Powered by

Badges  |  Report an Issue  |  Terms of Service