Symptom in a piece of code that possibly indicates a deeper problem.
Smells are certain structures in a code that indicate violation of fundamental design principles. They are usually not bugs; they are not technically incorrect and do not currently prevent the program from functioning.
=begin Example of Ruby code with data clumps and methods with too many parameters. =end class Dummy def x(y1, y2, y3, y4, y5, y6, y7, y8, a); end def y(y1, y2, y3, y4, y5, y6, y7, y8); end def z(y1, y2, y3, y4, y5, y6, y7, y8); end end
Even though they are not necessarily bugs, code smells increase the risk of bugs or failure in the future and may slow down development.
How to fix this
There are several refactoring techniques that can be used to deal with code smells including:
- Composing methods
- Moving features between objects
- Organizing data
- Simplifying conditional expressions
- Simplifying method calls
- Dealing with generalisation
See <https://sourcemaking.com/refactoring/refactorings> for more information.