Code Perfume

If CodeDeodorant is a coding pattern/principle removes a CodeSmell without removing its cause, then CodePerfume is one of those CodeDeodorants that introduces its own CodeSmells even while masking others.

An example is TellDontAsk, especially when implemented in an ObjectOriented language with closed class definitions (i.e. where programmers cannot modify the methods of an object without modifying the source-code of that object's class). TellDontAsk masks a FeatureEnvy smell, but introduces other smells by both violating the OneResponsibilityRule and tightly coupling the class vocabulary to the project that uses it - a serious blow to reuse and modularity.

Of course, the ability to choose how the CodeSmells is an advantage.

As with those sticks of underarm deodorants we can purchase in real life, it is likely that most CodeDeodorant is at least slightly 'perfumed' and will introduce its own CodeSmells.


EditText of this page (last edited December 29, 2008) or FindPage with title or text search