Variabledeclaredfar fromits usageRepetitiveNamingUnpronounceable/Confusing namingUnreadableRegexCommentsexplainingCodeToo manyarguments(>4)DeepnestingForever//TODOCodeDuplicationOverlycomplexbooleanconditionCatchingexceptionsand loggingonlyDependentfunctionsare farapartViolatesCommand-QuerySeparationMessageChains –a.b().c().d()...FREESwitchStatementAbuseLongMethodReturn nullinstead of anemptycollection /valueHidden sideeffects (e.g.parametermodifying)GodclassCommentedout codeCommentedOut CodeTemporaryfields(assigned now,used maybenever?)Errorcodesinstead ofexceptionMagicNumbers /MagicStringsVariabledeclaredfar fromits usageRepetitiveNamingUnpronounceable/Confusing namingUnreadableRegexCommentsexplainingCodeToo manyarguments(>4)DeepnestingForever//TODOCodeDuplicationOverlycomplexbooleanconditionCatchingexceptionsand loggingonlyDependentfunctionsare farapartViolatesCommand-QuerySeparationMessageChains –a.b().c().d()...FREESwitchStatementAbuseLongMethodReturn nullinstead of anemptycollection /valueHidden sideeffects (e.g.parametermodifying)GodclassCommentedout codeCommentedOut CodeTemporaryfields(assigned now,used maybenever?)Errorcodesinstead ofexceptionMagicNumbers /MagicStrings

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