Commentedout codeToo manyarguments(>4)Dependentfunctionsare farapartErrorcodesinstead ofexceptionViolatesCommand-QuerySeparationTemporaryfields(assigned now,used maybenever?)LongMethodVariabledeclaredfar fromits usageHidden sideeffects (e.g.parametermodifying)CommentedOut CodeOverlycomplexbooleanconditionFREEMessageChains –a.b().c().d()...DeepnestingMagicNumbers /MagicStringsForever//TODOUnpronounceable/Confusing namingCatchingexceptionsand loggingonlyRepetitiveNamingGodclassSwitchStatementAbuseUnreadableRegexCodeDuplicationCommentsexplainingCodeReturn nullinstead of anemptycollection /valueCommentedout codeToo manyarguments(>4)Dependentfunctionsare farapartErrorcodesinstead ofexceptionViolatesCommand-QuerySeparationTemporaryfields(assigned now,used maybenever?)LongMethodVariabledeclaredfar fromits usageHidden sideeffects (e.g.parametermodifying)CommentedOut CodeOverlycomplexbooleanconditionFREEMessageChains –a.b().c().d()...DeepnestingMagicNumbers /MagicStringsForever//TODOUnpronounceable/Confusing namingCatchingexceptionsand loggingonlyRepetitiveNamingGodclassSwitchStatementAbuseUnreadableRegexCodeDuplicationCommentsexplainingCodeReturn nullinstead of anemptycollection /value

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