Variabledeclaredfar fromits usageViolatesCommand-QuerySeparationMessageChains –a.b().c().d()...LongMethodUnpronounceable/Confusing namingToo manyarguments(>4)FREEErrorcodesinstead ofexceptionSwitchStatementAbuseOverlycomplexbooleanconditionForever//TODODependentfunctionsare farapartTemporaryfields(assigned now,used maybenever?)Commentedout codeCodeDuplicationHidden sideeffects (e.g.parametermodifying)DeepnestingGodclassReturn nullinstead of anemptycollection /valueMagicNumbers /MagicStringsCatchingexceptionsand loggingonlyCommentedOut CodeRepetitiveNamingUnreadableRegexCommentsexplainingCodeVariabledeclaredfar fromits usageViolatesCommand-QuerySeparationMessageChains –a.b().c().d()...LongMethodUnpronounceable/Confusing namingToo manyarguments(>4)FREEErrorcodesinstead ofexceptionSwitchStatementAbuseOverlycomplexbooleanconditionForever//TODODependentfunctionsare farapartTemporaryfields(assigned now,used maybenever?)Commentedout codeCodeDuplicationHidden sideeffects (e.g.parametermodifying)DeepnestingGodclassReturn nullinstead of anemptycollection /valueMagicNumbers /MagicStringsCatchingexceptionsand loggingonlyCommentedOut CodeRepetitiveNamingUnreadableRegexCommentsexplainingCode

Code Smell Bingo - Call List

(Print) Use this randomly generated list as your call list when playing the game. There is no need to say the BINGO column name. Place some kind of mark (like an X, a checkmark, a dot, tally mark, etc) on each cell as you announce it, to keep track. You can also cut out each item, place them in a bag and pull words from the bag.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
  1. Variable declared far from its usage
  2. Violates Command-Query Separation
  3. Message Chains – a.b().c().d() ...
  4. Long Method
  5. Unpronounceable/ Confusing naming
  6. Too many arguments (>4)
  7. FREE
  8. Error codes instead of exception
  9. Switch Statement Abuse
  10. Overly complex boolean condition
  11. Forever //TODO
  12. Dependent functions are far apart
  13. Temporary fields (assigned now, used maybe never?)
  14. Commented out code
  15. Code Duplication
  16. Hidden side effects (e.g. parameter modifying)
  17. Deep nesting
  18. God class
  19. Return null instead of an empty collection / value
  20. Magic Numbers / Magic Strings
  21. Catching exceptions and logging only
  22. Commented Out Code
  23. Repetitive Naming
  24. Unreadable Regex
  25. Comments explaining Code