# Code Smells Smells are indicators of where your code might be hard to read, maintain or evolve, rather than things that are specifically _wrong_. Naturally this means that Reek is looking towards your code's future (and that can make its reports seem somewhat subjective, of course). Reek currently includes checks for the following smells: * [Attribute](Attribute.md) * [Class Variable](Class-Variable.md) * [Control Couple](Control-Couple.md), including * [Boolean Parameter](Boolean-Parameter.md) * [Control Parameter](Control-Parameter.md) * [Data Clump](Data-Clump.md) * [Duplicate Method Call](Duplicate-Method-Call.md) * [Instance Variable Assumption](Instance-Variable-Assumption.md) * [Irresponsible Module](Irresponsible-Module.md) * [Large Class](Large-Class.md), including * [Too Many Constants](Too-Many-Constants.md) * [Too Many Instance Variables](Too-Many-Instance-Variables.md) * [Too Many Methods](Too-Many-Methods.md) * [Long Parameter List](Long-Parameter-List.md), and its special case [Long Yield List](Long-Yield-List.md) * Low Cohesion, including * [Feature Envy](Feature-Envy.md) * [Utility Function](Utility-Function.md) * [Module Initialize](Module-Initialize.md) * [Nested Iterators](Nested-Iterators.md) * [Missing Safe Method](Missing-Safe-Method.md), formerly known as Prima Donna Method * [Simulated Polymorphism](Simulated-Polymorphism.md), including * [Manual Dispatch](Manual-Dispatch.md) * [Nil Check](Nil-Check.md) * [Repeated Conditional](Repeated-Conditional.md) * [Subclassed From Core Class](Subclassed-From-Core-Class.md) * [Too Many Statements](Too-Many-Statements.md) * [Uncommunicative Name](Uncommunicative-Name.md), including * [Uncommunicative Method Name](Uncommunicative-Method-Name.md) * [Uncommunicative Module Name](Uncommunicative-Module-Name.md) * [Uncommunicative Parameter Name](Uncommunicative-Parameter-Name.md) * [Uncommunicative Variable Name](Uncommunicative-Variable-Name.md) * [Unused Parameters](Unused-Parameters.md) * [Unused Private Method](Unused-Private-Method.md)